首页 > 解决方案 > 过滤器方法的回调有副作用好吗

问题描述

在阅读同事的代码时,我惊讶地发现过滤器的回调有如下副作用。

let output = [];
let input = ['apple', 'boy', 'carrot'];
input.filter(w => output.push(w + '_suffix'));
console.log(output);
//log:-
//["apple_suffix", "boy_suffix", "carrot_suffix"]

我建议使用map()方法。但是我没有想过这样的数组方法。即影响回调函数之外的状态。我发现很多其他同事也以类似的方式使用地图方法。

以这种方式使用数组方法可以吗?如果没有,如何在团队中执行?打字稿也无助于执行。我猜也不能使用 linting。

标签: javascriptarrays

解决方案


推荐阅读