ES6 Map遍历、filter()筛选对象

目录:

-------- 1、map()

-------- 2、filter():

------------- 2.1、filter函数可以看成是一个过滤函数,返回符合条件的元素的数组

-------- 3、filter() 筛选符合条件项

-------- 4、filter() 数组去重

-------- 5、filter() 去掉空字符串、undefined、null

-------- 6、filter() 筛选数组对象

------------ 6.1、单个条件筛选:筛选出对象.a属性不等于苹果的对象集合

------------ 6.2、多个筛选条件:筛选数组对象中a属性是苹果,b属性是面包的对象集合

map():

map和forEach等遍历方法不同,在forEach中return语句是没有任何效果的,而map则可以改变当前循环的值,返回一个新的被改变过值之后的数组(map需return),一般用来处理需要修改某一个数组的值。

let arr1 = [1,2,3];
let arr2 = arr1.map((value,key,arr) => {
    console.log(value)    // 1,2,3
    console.log(key)      // 0,1,2
    console.log(arr)      //[1,2,3] [1,2,3] [1,2,3]
    return value * value;
})
console.log(arr1); // [ 1, 2, 3 ]
console.log(arr2); // [ 1, 4, 9 ]

filter():

filter函数可以看成是一个过滤函数,返回符合条件的元素的数组

filter需要在循环的时候判断一下是true还是false,是true才会返回这个元素;

let arr1 = [1,2,3];
let arr2 = arr1.filter((value,key,arr) => {
    console.log(value)    // 1,2,3
    console.log(key)      // 0,1,2
    console.log(arr)      // [1,2,3]
    return value >= 3 ? false : true;     //内部走的就是value>=3 成立吗,成立的部分返回,不成立的部分不返回。
})
console.log(arr1); // [ 1, 2, 3 ]
console.log(arr2); // [ 1, 2 ]   

filter() 筛选符合条件项

//返回数组中大于等于 2的新数组
console.log("--------------筛选出(大于等于2的)-----------------------")
let arr = [1, 2, 3]
let newArr = arr.filter(item => item >= 2)
console.log(newArr)

filter() 数组去重

let arr5 = [1, 2, 2, 3, 4, 5, 5, 6];
let newArr4 = arr5.filter((x, index, self) => {
    return self.indexOf(x) === index
})
console.log(newArr4) //[1,2,3,4,5,6]

filter() 去掉空字符串、undefined、null

//filter() 去掉空字符串、undefined、nulllet arr4 = [‘‘, ‘1‘, ‘2‘, undefined, ‘3.jpg‘, undefined]
let newArr3 = arr4.filter(item => item)
console.log(newArr3); //[‘1‘, ‘2‘, ‘3.jpg‘]

filter() 筛选数组对象

单个条件筛选:筛选出对象.a属性不等于苹果的对象集合

let arr = [
    {a:‘苹果‘,b:‘面包‘,c:‘吃‘},
    {a:‘香蕉‘,b:‘面包‘,c:‘不吃‘},
    {a:‘香蕉‘,b:‘苹果‘,c:‘吃‘},
    {a:‘苹果‘,b:‘香蕉‘,c:‘不吃‘},
]

 let newarr8 = arr7.filter((value, index, arr) => {
   return value.a != ‘苹果‘
 })
 console.log(newarr8) //[{a:‘香蕉‘,b:‘面包‘,c:‘不吃‘},{a:‘香蕉‘,b:‘苹果‘,c:‘吃‘}]

多个筛选条件:筛选数组对象中a属性是苹果,b属性是面包的对象集合:

let a = ‘苹果‘; //筛选参数a
let b = ‘面包‘; //筛选参数b
let c = ‘‘     //筛选参数c
let arr = [
    {a:‘苹果‘,b:‘面包‘,c:‘吃‘},
    {a:‘香蕉‘,b:‘面包‘,c:‘不吃‘},
    {a:‘香蕉‘,b:‘苹果‘,c:‘吃‘},
    {a:‘苹果‘,b:‘香蕉‘,c:‘不吃‘},
];
if (a != ‘‘) {
    arr = arr.filter(item => item.a === a)
}
if (b != ‘‘) {
    arr = arr.filter(item => item.b === b)
}
if (c != ‘‘) {
    arr = arr.filter(item => item.c === c)
}
console.log(arr) // 筛选结果: [{a:‘苹果‘,b:‘面包‘,c:‘吃‘}]

原文地址:https://www.cnblogs.com/wangweizhang/p/10449887.html

时间: 2024-08-17 13:51:00

ES6 Map遍历、filter()筛选对象的相关文章

es6 map()和filter()详解【转】

原文地址:http://www.zhangxinxu.com/wordpress/2013/04/es5%e6%96%b0%e5%a2%9e%e6%95%b0%e7%bb%84%e6%96%b9%e6%b3%95/ map方法 map方法的作用不难理解,“映射”嘛,也就是原数组被“映射”成对应新数组.下面这个例子是数值项求平方: var data = [1, 2, 3, 4]; var arrayOfSquares = data.map(function (item) { return item

Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解

一.Jquery遍历筛选数组 1.jquery grep()筛选遍历数组 $().ready( function(){ var array = [1,2,3,4,5,6,7,8,9]; var filterarray = $.grep(array,function(value){ return value > 5;//筛选出大于5的 }); for(var i=0;i<filterarray.length;i++){ alert(filterarray[i]); } for (key in f

Swift高阶函数:Map,Filter,Reduce

闭包介绍 Swift一大特性便是使用简洁的头等函数/闭包语法代替了复杂的blocks语法.希望我们在Swift中不再需要像fuckingblocksyntax中所描述的语法.(译者注:头等函数-即可将函数当作参数传递给其他的函数,或从其他的函数里返回出值,并且可以将他们设定为变量,或者将他们存储在数据结构中) 闭包是自包含的blocks,它能在代码中传递和使用. 本文我们将重点介绍匿名定义的闭包(如:定义成内联的且不具名)也称匿名闭包.我们能够将其作为参数传递给其他函数/方法或者将其作为返回值.

python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 函数式编程:是使用一系列函数去解决问题,函数式编程就是根据编程的范式来的出想要的结果,只要是输入时确定的,输出就是确定的. 1.2高阶函数 能把函数作为参数传入,这样的函数就称为高阶函数. 1.2.1函数即变量 以python的内置函数print()为列,调用该函数一下代码 >>> pri

Swift函数编程之Map、Filter、Reduce

在Swift语言中使用Map.Filter.Reduce对Array.Dictionary等集合类型(collection type)进行操作可能对一部分人来说还不是那么的习惯.对于没有接触过函数式编程的开发者来说,对集合类型中的数据进行处理的时候第一反应可能就是采用for in遍历.本文将介绍一些Swift中可以采用的新方法. Map Map函数会遍历集合类型并对其中的每一个元素进行同一种的操作.Map的返回值是一个所得结果的数组.例如:我们要对一个数组里面的数据进行平方操作,常见的代码如下:

闭包 -&gt; map / floatMap / filter / reduce 浅析

原创: 转载请注明出处 闭包是自包含的函数代码块,可以在代码中被传递和使用 闭包可以捕获和存储其所在上下文中任意常量和变量的引用.这就是所谓的闭合并包裹着这些常量和变量,俗称闭包.Swift 会为您管理在捕获过程中涉及到的所有内存操作. 闭包表达式是一种利用简洁语法构建内联闭包的方式 sort 方法(The Sort Method) Swift 标准库提供了名为sort的方法,会根据您提供的用于排序的闭包函数将已知类型数组中的值进行排序.一旦排序完成,sort(_:)方法会返回一个与原数组大小相

内置函数二: map sorted filter

-----------生活里没有奇迹,大部分的时候奇迹是你自己创造的. # -------------------------------------------------------------------------# # sum = lambda a,b:a+b# svm = sum(10,510)# print(svm) # st = ["魔兽世界","吃鸡","阴阳师","地下城与勇士","传奇"

js中遍历数组、对象的方式

1.标准的for循环遍历数组 var array = [1,2,3,4,5,6,7]; for (var i = 0; i < array.length; i) { console.log(i,array[i]); } 2.for in 遍历对象 for in 以任意顺序遍历一个对象的可枚举属性. 因此当迭代那些访问次序重要的 arrays 时用整数索引去进行 for 循环 (或者使用 Array.prototype.forEach() 或 for...of 循环) . 一般常用来遍历非数组的对

238 ES5新增方法:forEach()、map()、filter()、some()、every()

3.1 数组方法forEach遍历数组 arr.forEach(function(value, index, array) { //参数一是:数组元素 //参数二是:数组元素的索引 //参数三是:当前的数组 }) //相当于数组遍历的 for循环 没有返回值 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name=&quo