Javascript对象的总和
字典中有一个javascript对象,如下所示:Javascript对象的总和,javascript,Javascript,字典中有一个javascript对象,如下所示: function getDate(date, arr) { for(var i = arr.length; i--;) { if(arr[i].date === date) { var obj = { sum: 0; }; for(var prop in arr[i]) { if(prop !== "date") {
function getDate(date, arr) {
for(var i = arr.length; i--;) {
if(arr[i].date === date) {
var obj = { sum: 0; };
for(var prop in arr[i]) {
if(prop !== "date") {
obj.sum += arr[i][prop];
}
}
obj.date = obj.date;
return obj;
}
}
}
{日期:“2010/01”,
圣方济各会201001:1,
圣方济各会201002:2,
圣方济各会201003:3,
},
{日期:“2010/02”,
圣方济各会201001:0,
圣方济各会201002:1,
圣方济各会201003:2,
}
我想找到
{日期:“2010/01”,总和:6,),{日期:“2010/02”,总和:3,)
这有点棘手,因为属性名是任意的。有什么线索可以告诉我们怎么做吗
谢谢。这不是一个对象,而是两个对象。我假设它们在一个数组中。然后可以循环数组,并循环每个对象中的属性:
var result = [];
for (var i = 0; i < theArray.length; i++) {
var sum = 0;
for (var key in theArray[i]) {
if (key != 'date') {
sum += theArray[i][key];
}
}
result.push({ date: theArray[i].date, sum: sum });
}
var结果=[];
对于(变量i=0;i
要查找特定日期
值的总和,请创建一个具有如下主体的函数:
function getDate(date, arr) {
for(var i = arr.length; i--;) {
if(arr[i].date === date) {
var obj = { sum: 0; };
for(var prop in arr[i]) {
if(prop !== "date") {
obj.sum += arr[i][prop];
}
}
obj.date = obj.date;
return obj;
}
}
}
这应该起作用:
var data = [{ date: "2010/01", San_Francisco201001: 1, San_Francisco201002: 2, San_Francisco201003: 3, }, { date: "2010/02", San_Francisco201001: 0, San_Francisco201002: 1, San_Francisco201003: 2, }];
var result = [];
for(var i = 0; i < data.length; i++) {
var dateData = data[i];
var sum = 0;
for(var element in dateData) if(dateData.hasOwnProperty(element)) {
var elementData = dateData[element];
if(element != "date") {
sum += elementData;
}
}
result.push({date: dateData["date"], sum: sum});
}
var数据=[{日期:“2010/01”,圣方济各201001:1,圣方济各201002:2,圣方济各201003:3,},{日期:“2010/02”,圣方济各201001:0,圣方济各201002:1,圣方济各201003:2,}];
var结果=[];
对于(变量i=0;i
那么除了日期之外的所有内容都应该添加吗?我删除了json标记,因为这与json无关。