2015-12-05 80 views
0

我想從數組內的對象添加一些值在一起。這是我的例子:從JavaScript中的數組中添加值

[ 
 
    { 
 
    _id: "EnD2WbxhRJztDyfCA", 
 
    day: "Saturday", 
 
    totalMinutes: 10 
 
    }, 
 
    { 
 
    _id: "82NSKTYLiswWPbF8J", 
 
    day: "Saturday", 
 
    totalMinutes: 25 
 
    } 
 
]

我需要進入此陣,搶了他們兩人的totalMinutes值,然後加在一起。我遇到的另一個問題是數組內的對象數量變化。所以我不能爲每個不同數量的對象做特定的情況。

回答

3

這裏是一個函數。您傳遞數組並返回總分鐘數:

function getTotalMinutes(items) { 
    var totalMinutes = 0; 
    for (var i=0; i<items.length; i++) { 
     var item = items[i]; 
     totalMinutes += item.totalMinutes; 
    } 

    return totalMinutes; 
} 
0

這可能對你有幫助。

var arr = [ 
 
    { 
 
    _id: "EnD2WbxhRJztDyfCA", 
 
    day: "Saturday", 
 
    totalMinutes: 10 
 
    }, 
 
    { 
 
    _id: "82NSKTYLiswWPbF8J", 
 
    day: "Saturday", 
 
    totalMinutes: 25 
 
    } 
 
]; 
 
var result = 0; 
 

 
for (var x = 0; x < arr.length; x++){ 
 
    result += arr[x].totalMinutes 
 
} 
 

 
console.log(result)

0

您將數組轉換爲JSON格式。所以首先你需要轉換它。你可以這樣做: -

var ele = jQuery.parseJSON(yourjson); 

然後你可以訪問每個元素爲ele.time。這你也可以在jQuery.each()

執行希望這會幫助你。

0

您需要首先解析JSON:

var arr = JSON.parse(myJson); 

您可以在陣列則減少爲單個值:

var value = arr.reduce(function (prev, curr) { 
    return prev + curr.totalMinutes; 
}, 0); 
0

arr.reduce有性能問題,我發現這個解決方案,如果更好你有大量的數據呈現。

function getTotalMinutes(arr) { 
    var result = 0; 
    for (var i in arr){ 
    result += arr[i]['totalMinutes']; 
    } 
    return result; 
}