假设我有一个以这种格式声明的点列表:x1,y1 x2,y2
listOfPoints : string = "12.2, 13.0 198.2, 141";
我可以做什么来乘以 1.5,例如,这个字符串的每个数字? 我是否需要迭代 listOfPoints 并在每次出现 '、' 或 ' ' 时提取一个字符串,将该字符串转换为数字,将其乘以 1.5 并将其重新转换为字符串,最后将其放入新字符串(新点列表)?
或者有其他更有效的方法吗?
谢谢。
最佳答案
使用带有替换函数的正则表达式来匹配数字(可能带有小数),并替换为这些数字乘以所需的数字:
const listOfPoints = "12.2, 13.0 198.2, 141";
const multiplied = listOfPoints.replace(
/\d+(?:\.\d+)?/g,
match => match * 1.5
);
console.log(multiplied);
由于浮点问题,某些结果数字可能有尾随数字。如果您不想这样做,可以将相乘后的数字四舍五入到一定的小数位数:
const listOfPoints = "12.2, 13.0 198.2, 141";
const multiplied = listOfPoints.replace(
/\d+(?:\.\d+)?/g,
match => Math.round(1000 * match * 1.5) / 1000
);
console.log(multiplied);
关于javascript - 字符串的点相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58686318/