如何实现返回排除首个元素且每个元素加7的新数组?
解决方法
你已经完成了排除首个元素的逻辑,接下来只需要对筛选后的数组每个元素执行加7操作就行,用map()方法就能轻松实现。
方法一:在现有代码基础上扩展
直接对filter得到的数组调用map,给每个元素加7:
function addSevenToMost(arr) { let except = 0; const newArr = arr.filter((value, index) => index !== except); return newArr.map(num => num + 7); } // 测试 console.log(addSevenToMost([1, 3, 5])); // 输出 [10, 12]
方法二:更简洁的写法
因为要排除首个元素,直接用arr.slice(1)就能获取从索引1开始的所有元素,再结合map一步到位,代码更高效简洁:
function addSevenToMost(arr) { return arr.slice(1).map(num => num + 7); } // 测试 console.log(addSevenToMost([1, 3, 5])); // 输出 [10, 12]
简单说明
slice(1):从数组索引1的位置开始截取,返回新数组,不会修改原数组,比filter更适配“排除首个元素”的场景。map():遍历数组每个元素,对元素执行指定操作(这里是加7),返回处理后的新数组。
内容的提问来源于stack exchange,提问作者Ayrene
相关产品推荐
相关产品推荐

