如何使用javascript将所有负值更改为array
中的正值,例如:
const arry = [-2.5699, -1.4589, -3.2447, -6.9789 ,-9.213568];
我的结果应为[2.56, 1.45, 3.24, 6.97, 9.21]
javascript中怎么可能?
我尝试了Math.abs
,但我得到了NaN
答案 0 :(得分:4)
我尝试使用Math.abs但是我得到了NAN
使用map
var arry = [-2.5699, -1.4589, -3.2447, -6.9789 ,-9.213568];
arry = arry.map( s => Math.abs(s));
<强>演示强>
var arry = [-2.5699, -1.4589, -3.2447, -6.9789, -9.213568];
arry = arry.map(s => Math.abs(s));
console.log(arry);
修改强>
简而言之(正如@pwolaq建议的那样)
arry = arry.map(Math.abs)
修改2
错过了四舍五入的部分
var fnRound = (s) => +String(s).match(/\d+\.?\d{0,2}/)[0];
var arry = [-2.5699, -1.4589, -3.2447, -6.9789, -9.213568];
arry = arry.map(Math.abs).map( fnRound );
<强>演示强>
var fnRound = (s) => +String(s).match(/\d+\.?\d{0,2}/)[0];
var arry = [-2.5699, -1.4589, -3.2447, -6.9789, -9.213568];
arry = arry.map(Math.abs).map( fnRound );
console.log(arry);
正则表达式解释 /\d+\.?\d{0,2}/
\d+
匹配小数点前的数字0
或1
次。\d{0,2}
匹配小数点后的2位数。答案 1 :(得分:2)
您可以使用Math.abs
返回数字的绝对值。
const arry = [-2.5699, -1.4589, -3.2447, -6.9789, -9.213568];
const arry2 = arry.map( v => Math.floor( Math.abs(v) * 100) / 100 );
console.log(arry2);
&#13;
答案 2 :(得分:2)
如果你真的想要截断你的号码,而不是围绕它们,那么下面的代码就可以了:
var arry = [-2.5699, -1.4589, -3.2447, -6.9789 ,-9.213568];
arry = arry.map(value => Math.floor(Math.abs(value) * 100)/100);