摘要:介紹方法接收一個函數(shù)作為累加器為數(shù)組中的每一個元素依次執(zhí)行回調(diào)函數(shù),不包括數(shù)組中被刪除或從未被賦值的元素,接受四個參數(shù)初始值上一次回調(diào)的返回值,當(dāng)前元素值,當(dāng)前索引,原數(shù)組。
介紹reduce
reduce() 方法接收一個函數(shù)作為累加器,reduce 為數(shù)組中的每一個元素依次執(zhí)行回調(diào)函數(shù),不包括數(shù)組中被刪除或從未被賦值的元素,接受四個參數(shù):初始值(上一次回調(diào)的返回值),當(dāng)前元素值,當(dāng)前索引,原數(shù)組。
語法:arr.reduce(callback,[initialValue])
callback:函數(shù)中包含四個參數(shù) - previousValue (上一次調(diào)用回調(diào)返回的值,或者是提供的初始值(initialValue)) - currentValue (數(shù)組中當(dāng)前被處理的元素) - index (當(dāng)前元素在數(shù)組中的索引) - array (調(diào)用的數(shù)組) initialValue (作為第一次調(diào)用 callback 的第一個參數(shù)。)簡單應(yīng)用
const arr = [1, 2, 3, 4, 5] const sum = arr.reduce((pre, item) => { return pre + item }, 0) console.log(sum) // 15案例 根據(jù)對象里面的某一項屬性分類,如下效果所示:
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; },[]);結(jié)果如下: 不使用reduce實現(xiàn)上述需求:
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]; //根據(jù)對象里面的每一項的index分類 });
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/106568.html
摘要:一語法其中,表示將要原數(shù)組表示上一次調(diào)用回調(diào)時的返回值,或者初始值表示當(dāng)前正在處理的數(shù)組元素表示當(dāng)前正在處理的數(shù)組元素的索引,若提供值,則索引為,否則索引為表示初始值。 一、語法 arr.reduce(function(prev,cur,index,arr){...}, init); 其中,arr 表示將要原數(shù)組;prev 表示上一次調(diào)用回調(diào)時的返回值,或者初始值 init;cur 表...
摘要:概念淺談是一個專為應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測的方式發(fā)生變化。更改的中的狀態(tài)的唯一方法,類似。允許我們將分割成模塊。 通過購物車的一個案列,把vuex學(xué)習(xí)了一篇。 vuex概念淺談 Vuex 是一個專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以...
摘要:在講述之前,我們看看之前傳統(tǒng)的架構(gòu)以及在前端中的一些問題繼而思考帶來的改變。按照官方的描述,其中和體現(xiàn)了它的作用。實踐我們通過一個非常簡單的計數(shù)器來梳理的數(shù)據(jù)流。 Flux概述 Flux是Facebook用來構(gòu)建用戶端的Web應(yīng)用程序的體系架構(gòu),與其它形式化的框架相比,它更像是一個架構(gòu)思想,用于管理和控制應(yīng)用中數(shù)據(jù)的流向。這里應(yīng)用中的數(shù)據(jù)指包括但不限于來自服務(wù)端的數(shù)據(jù)頁面中view的一...
摘要:作為目前最火的模式實現(xiàn)之一,它有很多的點值得研究。這個函數(shù)既然要用于,也就是說它接收一個形式為的函數(shù),對其一層層嵌套形式為。這個會在開始時發(fā)起一個,并在這個時發(fā)起另一個成功或失敗的。為了方便起見,會返回這個讓調(diào)用者可以等待。 Redux作為目前最火的Flux模式實現(xiàn)之一,它有很多的點值得研究。今天我們首先來看看它的Middleware。 熟悉Express或者koa的朋友對Middle...
閱讀 1580·2021-10-14 09:42
閱讀 3826·2021-09-07 09:59
閱讀 1306·2019-08-30 15:55
閱讀 581·2019-08-30 11:17
閱讀 3346·2019-08-29 16:06
閱讀 512·2019-08-29 14:06
閱讀 3134·2019-08-28 18:14
閱讀 3656·2019-08-26 13:55