ES5新增数组的方法

ES5中新增数组的方法

1.indexof()

​ 格式:数组.index(item, start);

​ 参数: item 任意的数据;

​ start 下标 查找的起始位置(可以不传入,默认是0)

​ 功能:在数组中查找第一次出现item元素下标,从start开始去查找

​ 返回值: -1 没有查找到 >=0 查找到的元素的下标。

代码:

var arr = [10, 20, 30, 40, 50, 20, 30];var index = arr.indexOf(120, 2);alert(index);

2、forEach ()数组的遍历

​ forEach 是 ES5 中操作数组的一种方法,主要功能是遍历数组,事实上for 循环的加强版,该语句需要一个回调函数,作为参数。回调函数的形参,依次为,value:遍历的数组内容;index:对应的数组索引,array:数组本身。

代码:

var arr = [10, 20, 30, 40, 50];

​       arr.forEach(function(item, index, arr){/* 

​          item当前遍历到的元素

​          index当前遍历到元素的下标

​          arr数组本身

​         */

​         document.write(item + ", " + index + ", " + arr + "<br/>");});

3、map()映射

​ 功能:根据条件把原来的数组变成一个新的数组

代码:

	   var arr = [10, 20, 30, 40, 50];var newArr = arr.map(function(item, index, arr){//遍历要做的事情 映射关系return item * 1.3;//每一个映射要反应的关系});alert(newArr);alert(arr);

4.filter()

​ 功能:根据条件对原数组进行过滤,不该变原来的数组。

代码:

var arr = [10, 20, 30, 40, 50];var newArr = arr.filter(function(item, index, arr){//过滤的条件return item > 20;//过滤数组中大于20的数});alert(newArr);alert(arr);

5、some()

​ 功能:在数组中查找是否有符合条件的元素,有返回true,没有返回false。

​ 短路操作:只要找到符合条件的元素,后面的循环就停止了。
代码:

    var arr = [10, 20, 30, 40, 50];var res = arr.some(function(item, index, arr){//过滤的条件return item > 20;});alert(res);alert(arr); 

6、 every ()

​ 功能:在数组中查找每一个元素是否有符合条件,符合返回true,不符合返回false。

​ 短路操作:只要找到不符合条件的元素,后面的循环就停止了。

代码:

    var arr = [10, 20, 30, 40, 50];var res = arr.every(function(item, index, arr){alert(item);//过滤的条件return item < 30;});alert(res);alert(arr);

7、reduce 归并(累加器)

​ 通常用来做数组的累加,用prev + next,对下一元素进行归并

​ prev 第一次是(即初始值)下标为0的元素,第二次开始 上一次遍历后的返回值;

​ next 从下标1开始,当前遍历到的元素

​ arr数组本身

代码举例:

var arr = [10, 20, 30, 40, 50];var res = arr.reduce(function(prev, next, index, arr){alert(prev + ", " + next);return prev + next;});alert(res);

运行上面的代码我们知道,

第一次结果是10,20(即初始值为10,下一个元素为20)

第二次结果是30,30(把10和20归并后值为30,下一个元素为30)

第三次结果是60,40(30和30归并后值为60,下一个元素为40)

第四次结果是100,50(60和40归并后值为100,下一个元素为50)

第五次结果是150(即100和50归并后的值)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值