我在Javascript中有以下数组。我想找到一个数字来添加这个数组中的每个元素,以便它只包含正数。
这里我想在图表中将整个值移动到正x轴,图形应该看起来相同,但它应该只在正x轴上。
['0.000002', '-0.000007', '0.000026', '-0.000043', '-0.000029', '-0.000021', '-0.000023']
感谢。
答案 0 :(得分:7)
在数学术语中,您需要数字的absolute value
。在JavaScript中,Math.abs()
。
MDN:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/abs
var positiveArray = ['0.000002', '-0.000007', '0.000026', '-0.000043', '-0.000029', '-0.000021', '-0.000023'].map(Math.abs)
console.log(positiveArray)

答案 1 :(得分:2)
使用Math.abs
绝对值。请记住,这将使您的数组中的元素成为原始数组具有字符串。
var a = ['0.000002', '-0.000007', '0.000026', '-0.000043', '-0.000029', '-0.000021', '-0.000023'];
a = a.map(function(o){
return Math.abs(o);
});
console.log(a);
答案 2 :(得分:1)
const values = ['0.000002', '-0.000007', '0.000026', '-0.000043', '-0.000029', '-0.000021', '-0.000023'];
这里的目标是找到一个正数,可以添加到数组中的每个项目,使它们都是正数。因此,最好的方法是在数组中找到最负数。这是通过首先将所有字符串化数字映射到数字形式来完成的。然后,过滤掉正数。接下来,数组按升序排序。最后,数组中的第一项是最负数。
const mostNegativeNumber = values.map(value => +value)
.filter(value => value < 0)
.sort((x, y) => x - y)
.shift();
这里的答案是任何大于该负数的相反数字。
console.log(`Add any number that is greater than ${-mostNegativeNumber}.`);