国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

淺談js中reduce方法

mingzhong / 915人閱讀

摘要:介紹方法接收一個(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

相關(guān)文章

  • 淺談JS reduce() 的用法

    摘要:一語法其中,表示將要原數(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 表...

    gplane 評(píng)論0 收藏0
  • 淺談vuex

    摘要:概念淺談是一個(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)以...

    chaos_G 評(píng)論0 收藏0
  • 淺談Flux架構(gòu)及Redux實(shí)踐

    摘要:在講述之前,我們看看之前傳統(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的一...

    Juven 評(píng)論0 收藏0
  • 淺談js的遍歷

    摘要:這幾個(gè)方法會(huì)完整地遍歷數(shù)組,即使在滿足條件后,循環(huán)依舊進(jìn)行。如果要同時(shí)遍歷索引和項(xiàng)上述都是遍歷數(shù)組的方法,這個(gè)是遍歷對(duì)象的方法,并且最好不要混用 遍歷是程序中必不可少的一環(huán),在所有語言中都存在,因?yàn)樗梢院喕藗兊囊?guī)律性操作,本文將一一道來。 for++ 這是最基礎(chǔ)的for循環(huán)語句,格式如下: var arr = [1, 2, 3, 4, 5] for (var i =...

    X1nFLY 評(píng)論0 收藏0
  • 淺談Redux(之一):Middleware原理

    摘要:作為目前最火的模式實(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...

    cocopeak 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<