在 JavaScript 中,需要對動態陣列求和
假設我們有一個數組,其中包含不同體育專案中一些運動員的分數。得分表示形式如下 -
const scores = [
{sport: 'cricket', aman: 54, vishal: 65, jay: 43, hardik: 88, karan:23},
{sport: 'soccer', aman: 14, vishal: 75, jay: 41, hardik: 13, karan:73},
{sport: 'hockey', aman: 43, vishal: 35, jay: 53, hardik: 43, karan:29},
{sport: 'volleyball', aman: 76, vishal: 22, jay: 36, hardik: 24, karan:47},
{sport: 'baseball', aman: 87, vishal: 57, jay: 48, hardik: 69, karan:37},
];我們必須編寫一個函式,該函式接受此陣列並返回一個單獨的物件,其中運動鍵的值為“全部”,其他運動員鍵應具有陣列中不同物件中存在的值之和。因此,讓我們編寫此函式的程式碼 -
我們將在此處使用 Array.prototype.reduce() 方法來減少所有運動員不同體育專案的得分之和。執行此操作的程式碼為 -
示例
const scores = [
{sport: 'cricket', aman: 54, vishal: 65, jay: 43, hardik: 88, karan:23},
{sport: 'soccer', aman: 14, vishal: 75, jay: 41, hardik: 13, karan:73},
{sport: 'hockey', aman: 43, vishal: 35, jay: 53, hardik: 43, karan:29},
{sport: 'volleyball', aman: 76, vishal: 22, jay: 36, hardik: 24, karan:47},
{sport: 'baseball', aman: 87, vishal: 57, jay: 48, hardik: 69, karan:37},
];
const sumScores = (arr) => {
return arr.reduce((acc, val) => {
Object.keys(val).forEach(key => {
if(key!== 'sport'){
acc[key] += val[key];
};
});
if(acc['sport'] !== 'all'){
acc['sport'] = 'all';
};
return acc;
});
};
console.log(sumScores(scores));輸出
控制檯中的輸出為 -
{
sport: 'all',
aman: 274,
vishal: 254,
jay: 221,
hardik: 237,
karan: 209
}
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP