Javascript Array 非常用方法解析

时间:2021-08-17 05:53:42

在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 方法的返回值。

不为数组中缺少的元素调用该回调函数。