【问题标题】:Adding values from arrays in JavaScript在 JavaScript 中从数组中添加值
【发布时间】:2016-03-10 07:55:01
【问题描述】:
我正在尝试将数组内对象的一些值添加在一起。这是我的例子:
[
{
_id: "EnD2WbxhRJztDyfCA",
day: "Saturday",
totalMinutes: 10
},
{
_id: "82NSKTYLiswWPbF8J",
day: "Saturday",
totalMinutes: 25
}
]
我需要进入这个数组,取出它们的 totalMinutes 值,然后将它们加在一起。我遇到的另一个问题是数组中的对象数量发生了变化。所以我不能为每个不同数量的对象做具体的案例。
【问题讨论】:
标签:
javascript
arrays
object
meteor
【解决方案1】:
arr.reduce 存在性能问题,如果您有大量数据渲染,我发现此解决方案更好。
function getTotalMinutes(arr) {
var result = 0;
for (var i in arr){
result += arr[i]['totalMinutes'];
}
return result;
}
【解决方案2】:
你需要先解析JSON:
var arr = JSON.parse(myJson);
然后您可以将数组缩减为单个值:
var value = arr.reduce(function (prev, curr) {
return prev + curr.totalMinutes;
}, 0);
【解决方案3】:
您已将数组转换为 JSON 格式。所以首先你需要转换它。你可以这样做:-
var ele = jQuery.parseJSON( yourjson );
然后您可以使用ele.time 访问每个元素。您也可以在jQuery.each() 中执行此操作
希望这会对你有所帮助。
【解决方案4】:
这是一个函数。你传入数组,它会返回总分钟数:
function getTotalMinutes(items) {
var totalMinutes = 0;
for (var i=0; i<items.length; i++) {
var item = items[i];
totalMinutes += item.totalMinutes;
}
return totalMinutes;
}
【解决方案5】:
这可能会对你有所帮助。
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)