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);

在这里插入图片描述

  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);

[外链图片转存失败(img-xqjoNv7g-1567842284286)(./1566791840556.png)]

  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);

[外链图片转存失败(img-lObfufNj-1567842284287)(./1566792209582.png)]

  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);

[外链图片转存失败(img-c4cEeyph-1567842284287)(./1566808685899.png)]

  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);

在这里插入图片描述

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]
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值