如何在JavaScript中将数组内的所有负数转换为0?
JavaScript负数数组转0实现方案
有多种可落地的实现方式,以下是三种常用方案:
方法1:使用Array.map()生成新数组(推荐)
该方法不会修改原数组,符合不可变数据的最佳实践,代码简洁易读:
const originalArr = [-41.23, -34.23, -0.98576, 12.5, 0]; // 遍历每个元素,小于0则返回0,否则返回原值 const resultArr = originalArr.map(num => num < 0 ? 0 : num); console.log(resultArr); // 输出:[0, 0, 0, 12.5, 0]
方法2:原地修改原数组
如果不需要保留原始数组,想要节省内存空间,可通过for循环直接修改原数组:
const arr = [-41.23, -34.23, -0.98576, 12.5, 0]; for (let i = 0; i < arr.length; i++) { if (arr[i] < 0) { arr[i] = 0; } } console.log(arr); // 输出:[0, 0, 0, 12.5, 0]
方法3:用Math.max()简化判断逻辑
利用Math.max()返回最大值的特性,可以进一步简化判断代码:
const originalArr = [-41.23, -34.23, -0.98576, 12.5, 0]; // 取元素和0的最大值,负数会自动转为0 const resultArr = originalArr.map(num => Math.max(num, 0)); console.log(resultArr); // 输出:[0, 0, 0, 12.5, 0]
内容的提问来源于stack exchange,提问作者manju k
相关产品推荐
相关产品推荐

