let arr = [1, 2, 3, 2, 3, 5, 6, 4, 2, 45, 23, 3, 2, 4, 8]
let arr2 = arr.filter((x, index, self) => {
return self.indexOf(x) === index
})
console.log(arr2)
效果:
还可以简化一下:
let arr = [1, 2, 3, 2, 3, 5, 6, 4, 2, 45, 23, 3, 2, 4, 8]
let arr2 = arr.filter((x, index, self) => self.indexOf(x) === index)
console.log(arr2)
其实这种简写我自己都看的别扭,不懂的话看下这个ES6 箭头函数 用法。
更全的filter()用法可以看下这里,
以下转自:https://blog.csdn.net/bossxu_/article/details/80756563
1、创建一个数组,判断数组中是否存在某个值:
var newarr = [
{ num: 1, val: 'ceshi', flag: 'aa' },
{ num: 2, val: 'ceshi2', flag: 'aa2' }
]
console.log(newarr.filter(item => item.num===2 ))
打印效果:
2、去掉空数组空字符串、undefined、null
// undefined
var arr = ['1','2',undefined, '3.jpg',undefined]
var newArr = arr.filter(item => item)
console.log(newArr)
// null
var arr = ['1','2',null, '3.jpg',null]
var newArr = arr.filter(item => item)
console.log(newArr)
// 空字符串里面不能包含空格
var arr = ['1','2','', '3.jpg','']
var newArr = arr.filter(item => item)
console.log(newArr)
以上打印效果都一样:
3、去掉数组中不符合项:
var arr = [20,30,50, 96,50]
var newArr = arr.filter(item => item>40)
console.log(newArr)
打印效果:
4、过滤不符合项:
var arr = ['10','12','23','44','42']
var newArr = arr.filter(item => item.indexOf('2')<0) // 过滤不包含2的
console.log(newArr)
打印效果:
后半部分转载自:https://blog.csdn.net/bossxu_/article/details/80756563
如有侵权,联系删帖,谢谢哦!