Javascript数组Array方法解读(2)

查找对应项在数组中的索引位置,第二个参数表示对应查找方向的起始位置,返回第一个匹配的位置,如果没有找到则返回-1;
indexOf()是从前往后查找,lastIndexOf()是从后往前查找。

var arr1 = [1, 2, 3, 4, 3, 2, 1]; arr1.indexOf(2); // 1 arr1.indexOf(2, 3); // 5 arr1.lastIndexOf(3); // 4 arr1.lastIndexOf(3, 4) // 2

迭代方法

以下方法接受两个参数,第一个是每一项运行的函数,第二个函数运行的作用域。
运行函数有三个参数,分别是当前项,位置,数组本身。

array.every()

运行给定函数,如果迭代每一项都返回true,则最终返回true。

var arr1 = [1, 2, 3, 4, 5]; arr1.every(function(item, index, array){ return item > 3; }); // false

array.some()

运行给定函数,如果迭代中有一项返回true,则最终返回true。

arr1.some(function(item, index, array){ return item > 3; }); // true

array.map()

运行给定函数,将迭代中返回的值组成数组,返回该数组。

arr1.map(function(item, index, array){ return item * 2; }); // [2, 4, 6, 8, 10]

array.filter()

运行给定函数,将迭代中返回true的元素以数组形式返回

arr1.filter(function(item, index, array){ return item > 3; }); // [4, 5]

array.forEach()

运行给定函数,不返回任何值。类似于普通的for循环的功能。

归并方法

函数接受两个参数,第一个参数是每一个运行的自定义函数,第二项是作为归并基础的初始值。
自定义函数接受四个参数,分别是前一项,当前项,位置,数组。

array.reduce() 与 array.reduceRight() var splitstr = function(prev, item, index, array){ return prev + '#' + item; } var arr1 = [1, 2, 3, 4, 5]; arr1.reduce(splitstr, 8); // 8#1#2#3#4#5 arr1.reduceRight(splitstr, 8); // 8#5#4#3#2#1

小结

这一篇介绍了数组方法的种种细节和注意问题,下一篇将会介绍数组更高级的用法。本篇后续会添加ECMAScript6 新增加的数组方法的介绍。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgyfwg.html