如何在JavaScript中将数组中的负数替换为0?
如何在JavaScript中将数组中的负数替换为0?
你的代码问题在于直接拿整个数组和0比较——数组与数字比较时会被转换为NaN,NaN和0比较的结果为false,所以代码直接返回了原数组,根本没处理数组里的每个元素。
解决这个问题最简洁的方式是用Array.map()方法,它会遍历数组的每个元素并返回一个新数组,你可以在遍历过程中判断每个元素是否为负数,是的话替换成0:
function noNeg(arr) { return arr.map(num => num < 0 ? 0 : num); } // 测试示例 console.log(noNeg([1,5,10,-2])); // 输出: [1,5,10,0]
如果想修改原数组而非返回新数组,也可以用for循环遍历处理:
function noNeg(arr) { for (let i = 0; i < arr.length; i++) { if (arr[i] < 0) { arr[i] = 0; } } return arr; }
或者用Array.forEach()遍历修改:
function noNeg(arr) { arr.forEach((num, index) => { if (num < 0) { arr[index] = 0; } }); return arr; }
内容的提问来源于stack exchange,提问作者Ayrene
相关产品推荐
相关产品推荐

