淺談JS中 reduce() 的用法(轉帖)
阿新 • • 發佈:2020-07-10
過去有很長一段時間,我一直很難理解 reduce() 這個方法的具體用法,平時也很少用到它。事實上,如果你能真正瞭解它的話,其實在很多地方我們都可以用得上,那麼今天我們就來簡單聊聊JS中 reduce() 的用法。
一、語法
arr.reduce(function(prev,cur,index,arr){
...
}, init);
其中,
arr 表示原陣列;
prev 表示上一次呼叫回撥時的返回值,或者初始值 init;
cur 表示當前正在處理的陣列元素;
index 表示當前正在處理的陣列元素的索引,若提供 init 值,則索引為0,否則索引為1;
init 表示初始值。
看上去是不是感覺很複雜?沒關係,只是看起來而已,其實常用的引數只有兩個:prev
二、例項
先提供一個原始陣列:
求和
var sum = arr.reduce(function (prev, cur) { return prev + cur; },0);
求最大項
var max = arr.reduce(function (prev, cur) { return Math.max(prev,cur); });
去重
var newArr = arr.reduce(function (prev, cur) { prev.indexOf(cur) === -1 && prev.push(cur); return prev; },[]);
作者:前端王睿
連結:https://www.jianshu.com/p/541b84c9df90
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。