定义和用法:
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
注意: reduce() 对于空数组是不会执行回调函数的。
语法:
array.reduce(function (total, currentValue, currentIndex, arr), initialValue)
例子(重点在注释):
var array = [4, 5, 6, 7, 8];
var singleVal = 0;
singleVal = array.reduce(function(a, b) {
return a + b ;
}, 0)
//语法:array.reduce(function(total, currentValue,currentIndex, arr), initialValue)
//total是初始值, 或者计算结束后的返回值。
//currentValue是当前元素。
//initialValue是传递给函数的初始值。
//currentIndex是当前元素的索引。即:数组的序号。
//arr是当前元素所属的数组对象。数组中有多少个元素即有多少个数组对象。
执行过程:
① 0 + 4 = 4;
② 4 + 5 = 9;
③ 9 + 6 = 15;
④ 15 + 7 = 22;
⑤ 22 + 8 = 30;
由此看出,
reduce方法有两个参数,第一个参数是一个callback,用于针对数组项的操作;第二个参数则是传入的初始值,这个初始值用于单个数组项的操作。需要注意的是,reduce方法返回值并不是数组,而是形如初始值的经过叠加处理后的操作。
reduce方法最常见的场景就是叠加。
定义和用法
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法
arrayObject.concat(arrayX,arrayX,......,arrayX)
参数描述
arrayX必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
返回值
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
注:文章中的定义等专业概念来自W3school 及 http://www.runoob.com 网站。