JavaScript數組 : 了解減少功能
句法
arr.reduce(callbackFunction, [initialValue])
什麼是減少做?
減少是通過陣列循環函數.
操作可以在陣列上通過回調函數來執行.
在操作的陣列上的端, 減少返回單個值
減少可使用, 例如, 以總價購物車
例
讓ARR = [1,2,3,4,5];
arr.reduce( (累加器, 當前值, CURRENTINDEX, 排列) => {
//一些操作;
返回的東西;
});
回調函數
回調函數被調用用於陣列中的每個元件, 傳遞 4 這是通過精簡函數傳遞參數.
這些 4 參數則可以在回調函數中使用.
有四個參數
- 累加器 – 如果提供在第一循環或初始值的陣列的第一個元素. 那麼前一個循環的返回值.
- 當前值 – 陣列中的當前元素. 從在該陣列即第二元件開始. ARR[1], 當初始值參數不傳遞. 如果初始值參數被傳遞然後電流值從陣列ARR的第一元素開始[0].
- CURRENTINDEX – 當前元素的索引.
- 排列 – 整個陣列.
工作實例
讓ARR = [1,2,3,4,5]; arr.reduce( (累加器, 當前值, CURRENTINDEX, 排列) => { 的console.log(`累加器 (在第一環, 蓄電池是改編[0], 那麼它是前環的返回值): ${累加器}`); 的console.log(`CurrentValue的 (循環通過陣列, 開始ARR[1]): ${當前值}`); 的console.log(`CURRENTINDEX: ${CURRENTINDEX}`); 的console.log(`陣列: ${排列}`); 的console.log('---'); 回累加器 + 當前值; } );
產量
累加器 (在第一環, 蓄電池是改編[0], 那麼它是前環的返回值): 1 當前值 (循環通過陣列, 開始ARR[1]): 2 CURRENTINDEX: 1 排列: 1,2,3,4,5 --- 累加器 (在第一環, 蓄電池是改編[0], 那麼它是前環的返回值): 3 當前值 (循環通過陣列, 開始ARR[1]): 3 CURRENTINDEX: 2 排列: 1,2,3,4,5 --- 累加器 (在第一環, 蓄電池是改編[0], 那麼它是前環的返回值): 6 當前值 (循環通過陣列, 開始ARR[1]): 4 CURRENTINDEX: 3 排列: 1,2,3,4,5 --- 累加器 (在第一環, 蓄電池是改編[0], 那麼它是前環的返回值): 10 當前值 (循環通過陣列, 開始ARR[1]): 5 CURRENTINDEX: 4 排列: 1,2,3,4,5 ---
提供初始值
指定的第二個參數 (初始值) 在減少功能將導致初值要傳遞在作為第一環路累加器參數.
請注意,在第一循環中的電流值現在開始於所述陣列的所述第一元件
工作實例
讓ARR = [1,2,3,4,5]; arr.reduce( (累加器, 當前值, CURRENTINDEX, 排列) => { 的console.log(`累加器 ( 在第一環, 這是初始值, 那麼前一個循環的返回值): ${累加器}`); 的console.log(`CurrentValue的 (循環通過陣列, 開始ARR[0]): ${當前值}`); 的console.log(`CURRENTINDEX: ${CURRENTINDEX}`); 的console.log(`陣列: ${排列}`); 的console.log('---'); 回累加器 + 當前值; }, 0 );
產量
累加器 ( 在第一環, 這是初始值, 那麼前一個循環的返回值): 0 當前值 (循環通過陣列, 開始ARR[0]): 1 CURRENTINDEX: 0 排列: 1,2,3,4,5 --- 累加器 ( 在第一環, 這是初始值, 那麼前一個循環的返回值): 1 當前值 (循環通過陣列, 開始ARR[0]): 2 CURRENTINDEX: 1 排列: 1,2,3,4,5 --- 累加器 ( 在第一環, 這是初始值, 那麼前一個循環的返回值): 3 當前值 (循環通過陣列, 開始ARR[0]): 3 CURRENTINDEX: 2 排列: 1,2,3,4,5 --- 累加器 ( 在第一環, 這是初始值, 那麼前一個循環的返回值): 6 當前值 (循環通過陣列, 開始ARR[0]): 4 CURRENTINDEX: 3 排列: 1,2,3,4,5 --- 累加器 ( 在第一環, 這是初始值, 那麼前一個循環的返回值): 10 當前值 (循環通過陣列, 開始ARR[0]): 5 CURRENTINDEX: 4 排列: 1,2,3,4,5 ---
