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

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

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

1、語法

arr.reduce(callback,[initialValue])

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

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

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

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

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

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

initialValue (作為第一次調用 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ù)組轉化為一維

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ù)組轉化為一維

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

沂源县| 黑龙江省| 清涧县| 平阴县| 建阳市| 肇州县| 鄯善县| 融水| 德钦县| 个旧市| 白银市| 如皋市| 山西省| 青海省| 洛南县| 广南县| 阜宁县| 阿坝| 徐闻县| 广宁县| 微山县| 吐鲁番市| 名山县| 尼勒克县| 连城县| 和田县| 辉南县| 蓬莱市| 岳阳市| 金堂县| 延安市| 伽师县| 禄劝| 平泉县| 遂昌县| 德庆县| 泗水县| 老河口市| 深水埗区| 长治市| 泸西县|