精选文章 filter笔记

filter笔记

作者:cool-girl 时间: 2019-11-07 11:13:23
cool-girl 2019-11-07 11:13:23

原文是掘金看到的,非常好,作为学习笔记记录下来。https://juejin.im/post/5a5f3eaf518825733201a6a7

filter为数组中的每个元素调用一次callback函数,并利用所有使得“callback返回true或等价于true的值的元素”,创建一个新的数组。

var new_array = arr.filter(callback[,thisArg])

基础用法:

var spread = [12,5,6,130,44]
//筛选条件符合大于10的新数组
var filtered = spread.filter(n=>n>=10)
console.log('filtered',filtered)//=>[12,130,44]

进阶用法:

数组对象的键名/键值搜索

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },
  { 'user': 'fred',   'age': 40, 'active': false },
  { 'user': 'ared',   'age': 24, 'active': false },
  { 'user': 'ered',   'age': 80, 'active': false },
  { 'abc': 'ered',   'age': 80, 'active': false }
]
// 筛选 age等于40或者age等于24的 数组对象
var filtered = users.filter(n => n.age===40 || n.age===24)
console.log('filter后的键名', filtered)   
// => [{user: "fred", age: 40, active: false},{user: "ared", age: 24, active: false}]

高阶用法:

(1)数组去重

var spread = [12,5,8,8,130,44,130]
var filtered = spread.filter((item,idx,arr) => {
    return arr.indexOf(item) === idx;
})
// 筛选符合条件找到的第一个索引值等于当前索引值的数组
console.log('数组去重结果',filtered)

现在数组去重有ES6的新语法Set方法来解决更方便

var spread = [12,5,8,130,44,130]
var setFun = [...new Set(spread)]
console.log('数组去重结果',setFun)

字符串去重方法

var arr = [12,5,8,8,130,44,130,'a','b','a']
var obj = {}
arr.forEach(function(item){
    obj[item]=item;
})
Objeck.keys(obj)
cosole.log(Object.keys(obj))

数组中的空字符串删掉

var spread = ['A','','B',null,undefined,'C','  ']
var filtered = spread.filter((item,idx,arr) => {
    return item && item.trim()
})
cosole.log('数组中的空字符串删掉',filtered) //=>['A','B','C']

充分利用callback返回true的特点当做“过滤条件”函数,产生新的数组

 

 

 

 

 

 

 

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:Java 动态代理

下一篇:第八十五期:一文彻底搞懂cookie和session

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。