不要混用map和filter

数组的map,filter,reduce,forEach方法都是有使用场景的。如果我们不根据使用场景,而随意使用,很容易出现类似这种的情况

let n = 1
let seat
seats.map(item => {
    if (item.n === n) {
        seat = item
    }
})

这里我们只是想拿到数组中n值为1的对象。但map会返回一个新的数组,我们并没有进行数据处理,也没有使用返回信息,而只是用某种hack把符合条件的值赋值给了seat。

这样当然能拿到我们想要的结果,但并不是最优解,其实通过filter,我们可以很简单的拿到这个值

let n = 1
let seat = seats.filter(item => item.n === n)[0]

map与filter的区别

map 是把数组中的值一个一个的进行某种处理,把处理后的值放到一个新的数组中,并返回这个新的数组。

filter是通过某种筛选条件把数组中符合条件的值放到一个新的数组中,并返回这个新数组

filter和map都不会改变原数组的值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容