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