es6数组方法filter的使用

272 阅读1分钟

1.过滤数组

let arr = [
    { type: 1, name: '111' },
    { type: 1, name: '111' },
    { type: 2, name: '222' },
    { type: 3, name: '333' },
    { type: 2, name: '222' },
    {  type: 1, name: '111' }
]
console.log(arr.filter(item => item.type === 1)); // length = 3
console.log(arr.filter(item => item.type === 2)); // length = 2
console.log(arr.filter(item => item.type === 3)); // length = 1
console.log(arr.filter(item => item.type === 4)); // length = 0

2.清除数组不规则项

var arr = [
    '1', 
    '2', 
    undefined, 
    '3.jpg', 
    '', 
    null
]
var newArr = arr.filter(item => item)
console.log(newArr) //[ '1', '2', '3.jpg' ]

3.数组去重

let arr = [8, 7, 81, 90, 1, 2, 3, 4, 4, 1, 81, 5, 2, 2, 6, 7, 91];
let newArr = arr.filter((
    item, index, self) => {    
        console.log(self);    
        return self.indexOf(item) === index
    }
)
console.log(newArr); //[ 8, 7, 81, 90, 1, 2, 3, 4, 5, 6, 91 ]
// self 指代当前过滤的arr
// 当没次条件符合时,self会push当前item进入self中,说明self是一个新的数组对象
// 当self的index 和 过滤数组对象的index不符合时,会push