数组中的every、filter、map、some和forEach

 一、共同点:

 从参数:都接受一个函数作为参数,该函数带有三个参数,item,index,array,即数组某项,数组索引,数组本身。

 从返回值:every和some都返回一个布尔值true或false,filter和map返回一个数组,forEach没有返回值

二、实例分析

(1)every:都真才真,即对函数以数组中的每个元素进行调用,对return语句中的表达式进行求值,都返回true时every函数才返回true。

var arr = [1, 2, 3, 3, 4, 5 ,6],
var newArr = arr.every(function(item, index, array){
        return item > 0;
});
var anotherArr = arr.every(function(item, index, array){
        return item ;
});
console.log(newArr);//true 
console.log(anotherArr);//true

(2)some:有真就真,有一项返回true时every函数就返回true。

var arr = [false, undefined, '', NaN, 0 ,null,1];
var newArr = arr.some(function(item, index, array){
        return item > 0;
});
var anotherArr = arr.some(function(item, index, array){
        return item ;
});
console.log(newArr);//true 
console.log(anotherArr);//true

(3)filter:返回return语句求值为真的项组成的数组。

var arr = [false, undefined, '', NaN, 0 ,null,1,2];
var newArr = arr.filter(function(item, index, array){
        return item > 0;
});
var anotherArr = arr.filter(function(item, index, array){
        return item ;
});
console.log(newArr);//[1,2] 
console.log(anotherArr);//[1,2]

(4)map():接受一个函数作为参数,返回该函数参数对数组中每个元素调用的返回值组成的数组,如果没有含函数定义中没有返回值,就返回undefined。

var arr = [false, undefined, '', NaN, 0 ,null,1,2];
var newArr = arr.map(function(item, index, array){
        return item > 0;
});
var anotherArr = arr.map(function(item, index, array){
 
});
var arr2 = [1, 2, 3, 4, 5 ,6];
var thirdArr = arr2.map(function(item,index,array){
    return item + 1;
})
console.log(arr);//[false, undefined, '', NaN, 0 ,null,1,2]
console.log(newArr);//[false, false, false, false, false, false, true, true]
console.log(anotherArr);//[undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
console.log(thirdArr)//[2, 3, 4, 5, 6, 7]

(5)forEach():接受一个函数作为参数,该函数参数对数组中每个元素调用,和map()的区别在于没有返回值,如果仅仅想迭代数组,使用forEach(),如果对数组进行一些集体更改,请使用map()。

var arr = [1, 2, 3, 4, 5 ,6];
 
var newArr = arr.forEach(function(item, index, array){
     console.log(item + index);//依次输出1,3,5,7,9,11
});
 
var anotherArr = arr.forEach(function(item, index, array){
     return item + index;//return语句没有用
});
console.log(arr)//[1, 2, 3, 4, 5 ,6]
console.log(newArr);//undefined
console.log(anotherArr);//undefined

————————————————
版权声明:本文为CSDN博主「陈逍遥」的原创文章
原文链接:https://blog.csdn.net/zhuanyemanong/article/details/80400494 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值