笔者在做老项目维护和代码优化时,经常遇到以下这种代码书写方式
看的我是非常头疼
使用 filter() 和 map() 会遍历数组两次,并且代码不易维护。这里建议使用 reduce() 来替代 .filter().map(),使用 reduce() 只遍历一次并实现相同的效果,从而更高效。
- 示例如下:
const numbers = [-5, 6, 2, 0];
const doubledPositiveNumbers = numbers.reduce((accumulator, currentValue) => {
if (currentValue > 0) {
const doubled = currentValue * 2;
return [...accumulator, doubled];
}
return accumulator;
}, []);
console.log(doubledPositiveNumbers); // [12, 4]