es6 filter()去重

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)

以上打印效果都一样:

es6 filter()去重_第1张图片

 

3、去掉数组中不符合项:

var arr = [20,30,50, 96,50]
var newArr = arr.filter(item => item>40)  
console.log(newArr)

打印效果:

es6 filter()去重_第2张图片

 

4、过滤不符合项:

var arr = ['10','12','23','44','42']
var newArr = arr.filter(item => item.indexOf('2')<0) // 过滤不包含2的
console.log(newArr)

打印效果: 

es6 filter()去重_第3张图片

 后半部分转载自:https://blog.csdn.net/bossxu_/article/details/80756563

如有侵权,联系删帖,谢谢哦!

 

你可能感兴趣的:(js补基础,心得历程,查缺补漏)