91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解JS數組reduce()方法

發布時間:2020-07-16 17:11:08 來源:億速云 閱讀:174 作者:小豬 欄目:開發技術

小編這次要給大家分享的是詳解JS數組reduce()方法,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

1、語法

arr.reduce(callback,[initialValue])

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

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

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

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

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

4、array (調用 reduce 的數組)

initialValue (作為第一次調用 callback 的第一個參數。)如果沒有提供initialValue,reduce 會從索引1的地方開始執行 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) 計算數組中每個元素出現的次數

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)數組去重

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)將二維數組轉化為一維

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)將多維數組轉化為一維

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

看完這篇關于詳解JS數組reduce()方法的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

工布江达县| 石河子市| 河北区| 阿合奇县| 建水县| 临江市| 阿鲁科尔沁旗| 乌兰浩特市| 鸡东县| 温宿县| 犍为县| 襄垣县| 望城县| 扶风县| 尼勒克县| 南漳县| 隆回县| 吴堡县| 彰化市| 濉溪县| 太仆寺旗| 宁阳县| 六安市| 东乌珠穆沁旗| 建水县| 象州县| 南丹县| 柘城县| 屏南县| 西城区| 连州市| 孝义市| 沾益县| 依安县| 巴塘县| 牙克石市| 天等县| 五原县| 冷水江市| 廊坊市| 蒙城县|