定義和用法:
reduce() 方法接收一個(gè)函數(shù)作為累加器讨越,數(shù)組中的每個(gè)值(從左到右)開始縮減,最終計(jì)算為一個(gè)值。
注意: reduce() 對于空數(shù)組是不會(huì)執(zhí)行回調(diào)函數(shù)的砾省。
語法:
array.reduce(function (total, currentValue, currentIndex, arr), initialValue)
例子(重點(diǎn)在注釋):
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是初始值, 或者計(jì)算結(jié)束后的返回值。
//currentValue是當(dāng)前元素混槐。
//initialValue是傳遞給函數(shù)的初始值编兄。
//currentIndex是當(dāng)前元素的索引。即:數(shù)組的序號(hào)声登。
//arr是當(dāng)前元素所屬的數(shù)組對象狠鸳。數(shù)組中有多少個(gè)元素即有多少個(gè)數(shù)組對象。
執(zhí)行過程:
① 0 + 4 = 4悯嗓;
② 4 + 5 = 9件舵;
③ 9 + 6 = 15;
④ 15 + 7 = 22绅作;
⑤ 22 + 8 = 30芦圾;
由此看出,
reduce方法有兩個(gè)參數(shù)俄认,第一個(gè)參數(shù)是一個(gè)callback个少,用于針對數(shù)組項(xiàng)的操作;第二個(gè)參數(shù)則是傳入的初始值眯杏,這個(gè)初始值用于單個(gè)數(shù)組項(xiàng)的操作夜焦。需要注意的是,reduce方法返回值并不是數(shù)組岂贩,而是形如初始值的經(jīng)過疊加處理后的操作茫经。
reduce方法最常見的場景就是疊加。
定義和用法
concat() 方法用于連接兩個(gè)或多個(gè)數(shù)組。
該方法不會(huì)改變現(xiàn)有的數(shù)組卸伞,而僅僅會(huì)返回被連接數(shù)組的一個(gè)副本抹镊。
語法
arrayObject.concat(arrayX,arrayX,......,arrayX)
參數(shù)描述
arrayX必需。該參數(shù)可以是具體的值荤傲,也可以是數(shù)組對象垮耳。可以是任意多個(gè)遂黍。
返回值
返回一個(gè)新的數(shù)組终佛。該數(shù)組是通過把所有 arrayX 參數(shù)添加到 arrayObject 中生成的。如果要進(jìn)行 concat() 操作的參數(shù)是數(shù)組雾家,那么添加的是數(shù)組中的元素铃彰,而不是數(shù)組。
注:文章中的定義等專業(yè)概念來自W3school 及 http://www.runoob.com 網(wǎng)站芯咧。