Javascript Array 非常用方法解析
在ECMAScript5的Array中已经有了Array.prototype.forEach,Array.prototype.filter,Array.prototype.map等方法
1. map
var ary = Array(3); ary[0] = 2 ary.map(function(elem) { return '1'; });
结果是["1", undefined * 2]
, 因为map
只能被初始化过的数组成员调用
2. reduce
[].reduce(Math.pow); //typeError, 空数组上调用reduce var a = [1, 2, 3].reduce(function(previous, current, index, a) { return previous + current; }); //a=6 a = [1, 2, 3].reduce(function(previous, current, index, a) { return previews + current; }, 2); //a=8
当满足下列任一条件时,将引发 TypeError 异常:
-
callbackfn 参数不是函数对象。
-
数组不包含元素,且未提供 initialValue。
回调函数的返回值在下一次调用回调函数时作为 previousValue 参数提供。 最后一次调用回调函数获得的返回值为 reduce 方法的返回值。
不为数组中缺少的元素调用该回调函数。