不要混用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都不会改变原数组的值

你可能感兴趣的:(不要混用map和filter)