简单、快速的js数组操作 es6 filter、map、reduce运用

数组去重

var arr=[2,3,2,5,8,9,3,1,2,3,3,5,2,9,2];
var arr2=[...new Set(arr)];
console.log(arr2);

[2,3,5,8,9,1]

这里利用了es6中Set中的成员都是唯一不重复的特性

扩展运算符( spread )是三个点()。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

数组过滤

需求1:找出数组中小于5的值。
我们可以用es6中的filter()这个方法,我们点进这个方法可以看到,这个方法需要在括号内写一个回调函数,并且返回的结果必须是布尔类型。
最后,这个方法会根据返回的布尔值,以数组的形式,将符合条件的值返回。

const arr=[2,3,2,5,8,9,3,1,2,3,3,5,2,9,2];
//将返回的数组接收
let reArr=arr.fliter(function(n){
//过滤条件
	return n<5;
});
console.log(reArr);

[2,3,2,3,1,2,3,3,2,2]

需求2:将数组中的所有数乘2。
可以使用map()方法,大致用法和filter()相同

const arr=[2,3,2,5];
//将返回的数组接收
let reArr=arr.map(function(n){
//过滤条件
	return n*2;
});
console.log(reArr);

[4,6,4,10]

需求3:将数组求和。
可以使用reduce()方法,注意reduce()函数和前两个函数稍微有点区别。

const arr=[20,40,80,100];
//将返回的数组接收
let total=arr.reduce(function(preValue,n){
	return preValue+n;
},0);
console.log(total);

240

filter、map、reduce综合运用(链式调用)

需求:将数组中,小于100的数,乘以2再求和

const arr=[10,20,120,150,440,40,50];
//将返回的数组接收
let total=arr.filter(function(n){
	return n<100;//这里找出了小于一百的数,存放进一个数组
}).map(function(n){
	return n*2;//这里将数组乘以二
}).reduce(function(preValue,n){
	return preValue+n;//求和
},0)
console.log(total);

如果使用箭头函数会更加简洁

const arr=[10,20,120,150,440,40,50];
//将返回的数组接收,注意最后reduce中的默认值0可以不写
let total=filter(n => n<100).map(n => n*2).reduce((preValue,n) => preValue+n)
console.log(total);

240

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值