使用filter过滤数组方法map生成的空数据。

34 阅读1分钟

我通常会使用map方法来对数组的数据进行修改。 但是在使用map方法的时候,通常会遇到这种情况:

let list=[1,2,3,4,5,6,7];
let mapList = list.map(item=>{ if(item%2) return item})
mapList结果:[1, undefined, 3, undefined, 5, undefined, 7]

使用map方法,他会把你不需要的数据,变成undefined传了进去。

但我想要的是这样的结果:[1,3,5,7]

使用filter方法过滤一下,即可达到这种效果。

例:
let list=[1,2,3,4,5,6,7];
let mapList = list.map(item=>{ if(item%2) return item}).filter(item=>{return item})
mapList结果:[1,3,5,7]

你也可以这样

let list=[1,2,3,4,5,6,7];
let mapList = list.filter(item=>{ if(item%2) return item})
mapList结果:[1,3,5,7]

filter会对return的数据进行判断,如果数据为空值,则不会return到数组中去