ES5提供的数组方法

ES5提供的数组方法

ES5为我们提供了很多操作数组的方法,便于我们对数组进行一些基础的便携操作,接下来我们来详细聊聊ES5里面的那些数组方法
首先我们自行来封装一个数组函数,首先说明我们使用的参数以及它们所代表的意义(item数组项内容,index数组下标,arr数组)
上代码

//定义一个函数forEach
function forEach(arr , fn){
    for(var i = 0 ; i < arr.length ; i ++){
        fn(arr[i] , i , arr);
    }
}
//定义一个数组
var arr = [1,5,6,8,7,3];
//调用这个函数,同时将函数作为实参传入函数forEach中
forEach(arr , function (item , index , arr ){
    console.log(item , index , arr);
})

我们首先来分析一下上述代码,我们可以看到在封装函数时,我们在遍历数组的操作里进行了函数的调用,这样的目的是可以随着i值的变化,对数组中的每一个值进行函数对应的操作,在调用forEach函数时,我们将一个匿名函数作为实参传入forEach函数中,可以把这里当作是函数fn的具体操作,我们通过在外部控制内部这一设计来实现对数组每一项的具体操作,其优势在于,不改变内部函数结构,来控制输出方式,ES5为我们提供的数组操作的基本原理就是这样,我们可以通过这个原理自己去封装一些方法供我们使用。
接下来我们看看具体有ES给我们做好的那些方法供我们使用

1.forEach方法

返回值:undefined;
作用:用于遍历数组,代码量少

var arr = [1,5,6,3,4];
var res = arr.forEach( function(item , index , arr){
   console.log(item);
});
console.log(res);

在这里插入图片描述

2.map 方法

返回值:每次函数执行过后的返回值组成的数组
作用:具体操作数组中的各项数据

var arr = [1,5,6,3,4];
var res = arr.map(function(item , index , arr){
    return item * 2
});
console.log(res);

在这里插入图片描述

3.filter方法

返回值:符合条件的返回值组成的数组
作用:筛选

var arr = [1,5,6,3,4];
var res = arr.filter(function(item , index ,arr){
    return item > 5;
});
console.log(res);

在这里插入图片描述

4.some 方法

返回值:布尔值
作用:与逻辑或相似,有满足条件的即输出结果为true

var arr = [1,5,6,3,4];
 var res = arr.some(function (item , index ,arr){
     return item > 3;
 })
console.log(res);

在这里插入图片描述

5.every 方法

返回值:布尔值
作用:与逻辑与相似,全部满足条件的才输出true

var arr = [1,5,6,3,4];
var res = arr.every(function(item , index ,arr){
    return item > 3;
})
console.log(res);

在这里插入图片描述

6.归并 => reduce 方法

返回值:一个计算结果
作用:对数组内的值进行整合运算

(1)传入一个值

reduce( 函数 )

var arr = [1,5,6,3,4];
var res = arr.reduce(function(start , item){
    console.log(start , item);
    return start + item;
})

在这里插入图片描述
只传入一个函数的情况下,start会取数组中的第一项作为自己的值,item就会变成第二项的值,由结果可知,除第一次外,start就为上一次函数的计算结果

(2)传入两个值

reduce( 函数 ,start )

var arr = [1,5,6,3,4];
var res = arr.reduce(function(start , item){
    console.log(start , item);
    return start + item;
} , 2)

在这里插入图片描述
由运行结果分析得知,如果提前给start赋值,那么start在第一次计算时,用的是我们赋给的值,除此之外,start的值都是前一次函数的预算结果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值