最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS數(shù)組reduce()方法原理及使用技巧解析

 更新時間:2020年07月14日 09:41:50   作者:_littleTank_  
這篇文章主要介紹了JS數(shù)組reduce()方法原理及使用技巧解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

1、語法

arr.reduce(callback,[initialValue])

reduce 為數(shù)組中的每一個元素依次執(zhí)行回調(diào)函數(shù),不包括數(shù)組中被刪除或從未被賦值的元素,接受四個參數(shù):初始值(或者上一次回調(diào)函數(shù)的返回值),當(dāng)前元素值,當(dāng)前索引,調(diào)用 reduce 的數(shù)組。

callback (執(zhí)行數(shù)組中每個值的函數(shù),包含四個參數(shù))

1、previousValue (上一次調(diào)用回調(diào)返回的值,或者是提供的初始值(initialValue))

2、currentValue (數(shù)組中當(dāng)前被處理的元素)

3、index (當(dāng)前元素在數(shù)組中的索引)

4、array (調(diào)用 reduce 的數(shù)組)

initialValue (作為第一次調(diào)用 callback 的第一個參數(shù)。)如果沒有提供initialValue,reduce 會從索引1的地方開始執(zhí)行 callback 方法,跳過第一個索引。如果提供initialValue,從索引0開始。

2、reduce的簡單用法

var arr = [1, 2, 3, 4];
var sum = arr.reduce((x,y)=>x+y)
var mul = arr.reduce((x,y)=>x*y)
console.log( sum ); //求和,10
console.log( mul ); //求乘積,24

1) 計算數(shù)組中每個元素出現(xiàn)的次數(shù)

let names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];

let nameNum = names.reduce((pre,cur)=>{
 if(cur in pre){
  pre[cur]++
 }else{
  pre[cur] = 1 
 }
 return pre
},{})
console.log(nameNum); //{Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}

2)數(shù)組去重

let arr = [1,2,3,4,4,1]
let newArr = arr.reduce((pre,cur)=>{
  if(!pre.includes(cur)){
   return pre.concat(cur)
  }else{
   return pre
  }
},[])
console.log(newArr);// [1, 2, 3, 4]

3)將二維數(shù)組轉(zhuǎn)化為一維

let arr = [[0, 1], [2, 3], [4, 5]]
let newArr = arr.reduce((pre,cur)=>{
  return pre.concat(cur)
},[])
console.log(newArr); // [0, 1, 2, 3, 4, 5]

4)將多維數(shù)組轉(zhuǎn)化為一維

let arr = [[0, 1], [2, 3], [4,[5,6,7]]]
const newArr = function(arr){
  return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
}
console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7]

5)對象里的屬性求和

var result = [
  {
    subject: 'math',
    score: 10
  },
  {
    subject: 'chinese',
    score: 20
  },
  {
    subject: 'english',
    score: 30
  }
];

var sum = result.reduce(function(prev, cur) {
  return cur.score + prev;
}, 0);
console.log(sum) //60

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

遂溪县| 伊宁市| 武隆县| 定兴县| 灵川县| 霍山县| 昭苏县| 贺兰县| 商都县| 武宣县| 格尔木市| 米泉市| 中西区| 平定县| 龙游县| 忻州市| 华阴市| 山丹县| 中超| 齐齐哈尔市| 玛曲县| 鸡泽县| 浙江省| 汽车| 咸丰县| 达拉特旗| 龙州县| 手游| 永新县| 绥棱县| 道孚县| 鄂尔多斯市| 文安县| 平远县| 祁连县| 明水县| 什邡市| 濮阳县| 双鸭山市| 辽阳县| 定西市|