摘要:介紹方法接收一個函數作為累加器為數組中的每一個元素依次執行回調函數,不包括數組中被刪除或從未被賦值的元素,接受四個參數初始值上一次回調的返回值,當前元素值,當前索引,原數組。
介紹reduce
reduce() 方法接收一個函數作為累加器,reduce 為數組中的每一個元素依次執行回調函數,不包括數組中被刪除或從未被賦值的元素,接受四個參數:初始值(上一次回調的返回值),當前元素值,當前索引,原數組。
語法:arr.reduce(callback,[initialValue])
callback:函數中包含四個參數 - previousValue (上一次調用回調返回的值,或者是提供的初始值(initialValue)) - currentValue (數組中當前被處理的元素) - index (當前元素在數組中的索引) - array (調用的數組) initialValue (作為第一次調用 callback 的第一個參數。)簡單應用
const arr = [1, 2, 3, 4, 5] const sum = arr.reduce((pre, item) => { return pre + item }, 0) console.log(sum) // 15案例 根據對象里面的某一項屬性分類,如下效果所示:
let arr = [{index:0},{index:0},{index:1},{index:2},{index:2}]; let res = arr.reduce((pre,item)=>{ let temp = []; pre.forEach((val)=>{ if(val&&val.length) { if(val[0].index==item.index) { val.push(item); return pre; } } }) temp.push(item); pre.push(temp); return pre; },[]);結果如下: 不使用reduce實現上述需求:
groupBy(array, f) { let groups = {}; array.forEach(function(o) { let group = JSON.stringify(f(o)); groups[group] = groups[group] || []; groups[group].push(o); }); return Object.keys(groups).map(function(group) { return groups[group]; }); }; let sorted = this.groupBy(this.arr, function(item){ return [item.index]; //根據對象里面的每一項的index分類 });
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106568.html
摘要:一語法其中,表示將要原數組表示上一次調用回調時的返回值,或者初始值表示當前正在處理的數組元素表示當前正在處理的數組元素的索引,若提供值,則索引為,否則索引為表示初始值。 一、語法 arr.reduce(function(prev,cur,index,arr){...}, init); 其中,arr 表示將要原數組;prev 表示上一次調用回調時的返回值,或者初始值 init;cur 表...
摘要:在講述之前,我們看看之前傳統的架構以及在前端中的一些問題繼而思考帶來的改變。按照官方的描述,其中和體現了它的作用。實踐我們通過一個非常簡單的計數器來梳理的數據流。 Flux概述 Flux是Facebook用來構建用戶端的Web應用程序的體系架構,與其它形式化的框架相比,它更像是一個架構思想,用于管理和控制應用中數據的流向。這里應用中的數據指包括但不限于來自服務端的數據頁面中view的一...
摘要:作為目前最火的模式實現之一,它有很多的點值得研究。這個函數既然要用于,也就是說它接收一個形式為的函數,對其一層層嵌套形式為。這個會在開始時發起一個,并在這個時發起另一個成功或失敗的。為了方便起見,會返回這個讓調用者可以等待。 Redux作為目前最火的Flux模式實現之一,它有很多的點值得研究。今天我們首先來看看它的Middleware。 熟悉Express或者koa的朋友對Middle...
閱讀 1572·2021-10-14 09:42
閱讀 3815·2021-09-07 09:59
閱讀 1292·2019-08-30 15:55
閱讀 572·2019-08-30 11:17
閱讀 3337·2019-08-29 16:06
閱讀 500·2019-08-29 14:06
閱讀 3123·2019-08-28 18:14
閱讀 3642·2019-08-26 13:55