精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

JavaScriptreduce的使用示例

小編給大家分享一下JavaScript reduce的使用示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創新互聯公司主要從事網站設計制作、成都網站制作、網頁設計、企業做網站、公司建網站等業務。立足成都服務莆田,十多年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18982081108

reduce()方法對數組中的每一個元素執行一個reducer函數(由你提供),從而得到一個單一的輸出值。

reduce() 方法將一個數組中的所有元素還原成一個單一的輸出值,輸出值可以是數字、對象或字符串。 reduce() 方法有兩個參數,第一個是回調函數,第二個是初始值

回調函數

回調函數在數組的每個元素上執行。回調函數的返回值是累加結果,并作為下一次調用回調函數的參數提供。回調函數帶有四個參數。

  • Accumulator(累加器)——累加器累加回調函數的返回值。

  • Current Value(當前值)——處理數組的當前元素。

  • Current Index(當前索引)——處理數組當前元素的索引。

  • Source Array(源數組)

Current Index Source Array 是可選的。

初始值

如果指定了初始值,則將累加器設置為 initialValue 作為初始元素。否則,將累加器設置為數組的第一個元素作為初始元素。

arr.reduce(callback(accumulator, currentValue[,index[,array]])[, initialValue])

在下面的代碼片段中,第一個累加器(accumulator)被分配了初始值0。currentValue 是正在處理的 numbersArr 數組的元素。在這里,currentValue 被添加到累加器,在下次調用回調函數時,會將返回值作為參數提供。

const numbersArr = [67, 90, 100, 37, 60];
 
const total = numbersArr.reduce(function(accumulator, currentValue){
    console.log("accumulator is " + accumulator + " current value is " + currentValue);
    return accumulator + currentValue;
}, 0);
 
console.log("total : "+ total);

輸出

accumulator is 0 current value is 67
accumulator is 67 current value is 90
accumulator is 157 current value is 100
accumulator is 257 current value is 37
accumulator is 294 current value is 60
total : 354

JavaScript reduce用例

1.對數組的所有值求和

在下面的代碼中,studentResult 數組具有5個數字。使用 reduce() 方法,將數組減少為單個值,該值將 studentResult 數組的所有值和結果分配給 total

const studentResult = [67, 90, 100, 37, 60];
 
const total = studentResult.reduce((accumulator, currentValue) => accumulator +currentValue, 0);
 
console.log(total); // 354

2.對象數組中的數值之和

通常,我們從后端獲取數據作為對象數組,因此,reduce() 方法有助于管理我們的前端邏輯。在下面的代碼中,studentResult 對象數組有三個科目,這里,currentValue.marks 取了 studentResult 對象數組中每個科目的分數。

const studentResult = [
  { subject: '數學', marks: 78 },
  { subject: '物理', marks: 80 },
  { subject: '化學', marks: 93 }
];
 
const total = studentResult.reduce((accumulator, currentValue) => accumulator + currentValue.marks, 0);
 
console.log(total); // 251

3.展平數組

“展平數組”是指將多維數組轉換為一維。在下面的代碼中,twoDArr 2維數組被轉換為 oneDArr 一維數組。此處,第一個 [1,2] 數組分配給累加器 accumulator,然后 twoDArr 數組的其余每個元素都連接到累加器。

const twoDArr = [ [1,2], [3,4], [5,6], [7,8] , [9,10] ];
 
const oneDArr = twoDArr.reduce((accumulator, currentValue) => accumulator.concat(currentValue));
 
console.log(oneDArr);
// [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

4.按屬性分組對象

根據對象的屬性,我們可以使用 reduce() 方法將對象數組分為幾組。通過下面的代碼片段,你可以清楚地理解這個概念。這里,result 對象數組有五個對象,每個對象都有 subjectmarks 屬性。如果分數大于或等于50,則該主題通過,否則,主題失敗。

reduce() 用于將結果分組為通過和失敗。首先,將 initialValue 分配給累加器,然后 push() 方法在檢查條件之后將當前對象添加到 passfail 屬性中作為對象數組。

const result = [
  {subject: '物理', marks: 41},
  {subject: '化學', marks: 59},
  {subject: '高等數學', marks: 36},
  {subject: '應用數學', marks: 90},
  {subject: '英語', marks: 64},
];
 
let initialValue = {
  pass: [], 
  fail: []
}
 
const groupedResult = result.reduce((accumulator, current) => {
  (current.marks >= 50) ? accumulator.pass.push(current) : accumulator.fail.push(current);
  return accumulator;
}, initialValue);
 
console.log(groupedResult);

輸出

{
 pass: [
  { subject: ‘化學’, marks: 59 },
  { subject: ‘應用數學’, marks: 90 },
  { subject: ‘英語’, marks: 64 }
 ],
 fail: [
  { subject: ‘物理’, marks: 41 },
  { subject: ‘高等數學’, marks: 36 }
 ]
}

5.刪除數組中的重復項

在下面的代碼片段中,刪除了 plicatedArr 數組中的重復項。首先,將一個空數組分配給累加器作為初始值。accumulator.includes() 檢查 duplicatedArr 數組的每個元素是否已經在累加器中可用。如果 currentValue 在累加器中不可用,則使用 push() 將其添加。

const duplicatedsArr = [1, 5, 6, 5, 7, 1, 6, 8, 9, 7];
 
const removeDuplicatedArr = duplicatedsArr.reduce((accumulator, currentValue) => {
  if(!accumulator.includes(currentValue)){
    accumulator.push(currentValue);
  }
  return accumulator;
}, []);
 
console.log(removeDuplicatedArr);
// [ 1, 5, 6, 7, 8, 9

以上是“JavaScript reduce的使用示例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!


當前文章:JavaScriptreduce的使用示例
分享地址:http://m.jcarcd.cn/article/gsjssh.html
主站蜘蛛池模板: 日本加勒比国产在 | 老女人丨91丨九色 | 精品视频在线 | 国产精品区一区二 | 国产精品欧美电影 | 日本新ja| 国产精品再线线观看 | 日韩午夜有码 | 成人精品视频 | 精品国内成人 | 国产视频综合 | 乱伦国产影视欧美 | 国产脚交一区二区 | 日本一二三区视频 | 日本亚洲欧美在线视 | 日本国产在线播 | 欧美日韩在线不卡 | 日本在线成色 | 成人精品国产一区 | 精品就在欧美精品一 | 欧美一区国产二区 | 精品国产99 | 精品国产乱伦一区 | 国产专区日韩专区 | 午夜福利日韩在线 | 国产女人在线观看 | 国产播放隔着超 | 午夜不卡影| 国产色综合 | 日本不卡一区二 | 区免费97 | 日韩一区在线播放 | 日本va午| 国产+日韩+在线 | 福利导航网站 | 女同蕾丝一 | 动漫精品一区二 | 日本高清中字 | 99热视频 | 91一区二区视频 | 国产成a人亚洲精v |