ES6中的数组方法:find、filter、every、some、includes、reduce

本文总结了ES6中的数组6个方法:findfiltereverysomeincludesreduce
如果需要javascript中的数组的方法,请点击这个链接;里面包含15种数组的方法和小例子,简单易懂;

  1. find() 从左到右依次查找,找到一个就不往后找了;如果找不到,那么返回undefined;
    返回找到的那一项;
    不改变原数组
let arr = [1,23,4,56];
let a = arr.find((item,index)=>{
    console.log("item",item);
    console.log("index",index);
    return item >20; //返回true,说明就找到了;
})
console.log("a",a);

ES6中的数组方法:find、filter、every、some、includes、reduce_第1张图片

  1. filter() 过滤;把所有符合条件的数组成员放到一个新数组中返回;
    返回一个过滤后的新数组,
    不改变原数组
let arr = [1,23,4,56];
let b = arr.filter((item,index)=>{
    console.log("item",item);
    console.log("index",index);
    return item>20;
    //根据回调函数的返回值,返回true就留下,返回false,就不要;
})
console.log("b",b);

ES6中的数组方法:find、filter、every、some、includes、reduce_第2张图片

  1. every() 每一个都是true则返回true,如果有一个是false,那么直接返回false;
    返回一个布尔值;
    不修改原数组
    特点:every对每一个元素执行一个callback,直到它找到一个使 callback 返回 false的元素,就返回false,只要找到false,直接结束,不再继续向下查找;直到遍历完成也没有返回false的话,就返回true;
let e = arr.every((item,index)=>{
	console.log(19);
	return item>13;
})
console.log(e);

ES6中的数组方法:find、filter、every、some、includes、reduce_第3张图片

  1. some() 返回一个布尔值,只要有一个符合条件就返回true;找到true,就不再向右进行查找;
    不修改原数组
    特点:找到true就停下,不再向右查找;
let arr = [1,23,4,56];
let d = arr.some((item,index)=>{
    console.log("item",item);
    console.log("index",index);
    return item > 20;
})
console.log("d",d);

ES6中的数组方法:find、filter、every、some、includes、reduce_第4张图片

  1. includes 存在就返回true,不存在返回false;
    返回一个布尔值;
    不修改原数组
let  arr = [12,3,45,6,78];
console.log(arr.includes(45));  //true
  1. reduce 收敛,求和;
    不修改原数组
    reduce()方法接收一个回调函数作为第一个参数,回调函数又接受四个参数,分别是;
    1、prev =>初始值或上一次回调函数叠加的值;
    2、next => 本次回调(循环)将要执行的值;
    3、index=>“currentValue”的索引值;
    4、arr => 数组本身;
    reduce()方法返回的是最后一次调用回调函数的返回值;
let  arr = [12,3,45,6,78];
let  a = arr.reduce((prev,next)=>{
	// prev : 第一次代表数组的第一项,以后都代表上一次回调函数的返回值;
	console.log(prev,next);
	// return prev +next;
	return 100;
},100); //arr数组变为[100,12,3,45,6,78];
console.log(a);

ES6中的数组方法:find、filter、every、some、includes、reduce_第5张图片

let  arr = [{count:3,price:10},{count:2,price:20},{count:6,price:12}];
/*let s = arr.reduce((prev,next)=>{
	if(typeof prev==="number"){
		return prev+ next.count*next.price;
	}else{
		return prev.count*prev.price + next.count*next.price;
	}
})*/
let s = arr.reduce((prev,next)=>{
	return prev + next.count*next.price;
},0);
console.log(s);

reduce可以拼接数组

let ee = [[12,3,45,6],[7,88],[9]].reduce((prev,next)=>{
	return prev.concat(next);
})
//[12,3,45,6,7,88,9]

你可能感兴趣的:(ECMAScript,6,es6)