ECMAScript 5 数组新增方法详解:indexOf、迭代与归并

作者:代码拾荒时间:2026-10-30 08:52:11浏览:93

本文详解 ECMAScript 5 引入的数组新特性。重点介绍 indexOf 和 lastIndexOf 的位置查找方法,包括单参数与双参数的使用差异及严格相等比较规则。随后解析 five 个迭代方法:every、filter、forEach、map 和 some 的功能与返回值逻辑,最后说明 reduce 与 reduceRight 的归并操作及参数含义。

ECMAScript 5 数组新增特性概述

定义一个示例数组:var arr = [ 1, 2, 3, 4, 5, 4, 3, 2, 1 ];

位置查找方法:indexOf 与 lastIndexOf

新增的位置查找方法包括 indexOf 和 lastIndexOf。

1.1个参数的时候表示传值 返回索引位置(index从0开始)

示例代码: var index = arr.indexOf(4); alert(index); //3

当 indexOf 接收 2 个参数时,第一个参数指定搜索的起始位置,第二个参数仍为要查找的值。

示例代码: var index = arr.indexOf(4,4); alert(index); //5

在查找数组元素时,indexOf 和 lastIndexOf 使用严格相等运算符 '===' 进行比较。

lastIndexOf 示例: var index = arr.lastIndexOf(2); alert(index); //7

五个迭代方法详解

ECMAScript 5 新增了五个迭代方法。

1. every:对数组中的每个元素执行提供的函数,如果所有元素都返回 true,则最终结果为 true;若有一个元素返回 false,则最终结果为 false。


var result = arr.every(function(item , index , array){
  return item >= 1 ;
  });
alert(result); //true

2. filter:对数组的每个元素执行提供的函数,将过滤后符合条件的结果以新数组形式返回。


 var result = arr.filter(function(item , index , array){
return item > 2 ;
});
alert(result); //3,4,5,4,3

3. forEach:遍历数组中的每一项值,并对每一项执行指定的方法。


 arr.forEach(function(item, index, array){
  alert(item); //1,2,3,4,5,4,3,2,1
}); 

4. map:对数组的每个元素执行提供的函数,可以将处理后的新结果返回并组成新数组。


var result = arr.map(function(item, index, array){
  return item*10;
});
alert(result); //10,20,30,40,50,40,30,20,10   

5. some:对数组中的每个元素执行提供的函数,如果有一项返回 true,则最终结果为 true;若所有项都返回 false,则最终结果为 false。


var result = arr.some(function(item, index, array){
  return item >5 ;
});
alert(result); //false 

归并方法:reduce 与 reduceRight

归并方法包括 reduce 和 reduceRight。

两者的主要区别在于遍历的起始位置不同。

回调函数接收四个参数:前一个值、当前值、索引位置、原数组。


var result = arr.reduce(function(prev , cur , index , array){
  return prev + cur ;
});
alert(result) //25;

var result = arr.reduceRight(function(prev , cur , index , array){
  return prev + cur ;
});
alert(result) //25;

以上关于 ECMAScript 5 数组新特性的内容即为全部介绍,希望能为读者提供参考。

作者最新文章