簡體   English   中英

javascript:如何添加不同對象的特定鍵的值

[英]javascript :how to make an addition of value of specific key of different object

取一個對象,包含多個對象。 這些對象可以有一個名為number的特定鍵,其值為一個數字。 如何添加具有此鍵number的對象的所有“數字”值...

var myObject = {
    item1 = {
        name: "someName",
        color: "someColor2", 
        number: intValue
     },
     item2 = {
        name: "someName2",
        color: "someColor2"
     },
     item3 = {
        name: "someName3",
        color: "someColor3", 
        number: intValue
     },
     item4 = {
        name: "someName4",
        color: "someColor4" 
     },
};
var sum = 0;

for (var prop in myObject)
{
   sum += myObject[prop].number || 0;
}

那可能是某的開始......

這是Array.reduce的完美用例! 但是,由於您的輸入是一個對象而不是數組,我們需要使用Object.keys來獲取項目名稱列表,然后該列表將驅動 reducer 循環。

// your object def wasn't valid, so I made my own
var myObject = {
    item1: { name: 'item one',   color: 'red',    number: 1 },
    item2: { name: 'item two',   color: 'orange', number: 2 },
    item3: { name: 'item three', color: 'yellow', number: 3 },
    item4: { name: 'item four',  color: 'green',  number: 4 },
    item5: { name: 'item five',  color: 'blue',   number: 5 },
    item6: { name: 'item six',   color: 'indigo', number: 6 },
    item7: { name: 'item seven', color: 'violet', number: 7 }
};

var total = Object.keys(myObject) //=> ['item1', 'item2', 'item3', 'item4', ...]
.reduce(function(sum, itemName) {
    return sum += myObject[itemName].number;
}, 0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM