代码问题
假设我有一个以此格式声明的点列表:x1,y1 x2,y2
listOfPoints : string = "12.2,13.0 198.2,141";
例如,该字符串的每个数字如何乘以1.5? 我是否需要遍历listOfPoints并在每次有','或''时提取一个字符串,将该字符串转换为数字,将其乘以1.5,然后将其转换为字符串,最后将其放入新字符串中(newListOfPoints)?
还是有另一种方法可以更有效地做到这一点?
谢谢。
问题答案
使用带有替换功能的正则表达式来匹配数字(可能是小数),并用这些数字乘以所需的数字来替换:
100
由于浮点问题,某些结果数字可能带有尾随数字。如果不希望这样,可以将乘数四舍五入到小数位数:
const listOfPoints = "12.2,13.0 198.2,141";
const multiplied = listOfPoints.replace(
/\d+(?:\.\d+)?/g,match => match * 1.5
);
console.log(multiplied);
如果觉得前端之家所整理的内容很不错的话,欢迎点击下方分享按钮,转发给身边开发程序员好友。