原始数据
var obj=[
{
date:"2017-08-11",
state:"上",
result:{"温度":4,"湿度":3},
},
{
date:"2017-08-11",
state:"上",
result:{"温度":4,"湿度":3}
},
{
date:"2017-08-11",
state:"下",
result:{"温度":2,"湿度":3}
},
{
date:"2017-08-10",
state:"下",
result:{"温度":5,"湿度":3}
}
];
希望得到的结果
var result=[
{
date:"2017-08-11",
state:"上",
result:{"温度":8,"湿度":6}
},
{
date:"2017-08-11",
state:"下",
result:{"温度":2,"湿度":3}
},
{
date:"2017-08-10",
state:"下",
result:{"温度":5,"湿度":3}
},
]
代码如下:
var temp=[];
for(var i=0;i<obj.length;i++){
// console.log(obj[i]);
var test={};
if(i+1<obj.length){
if(obj[i].date===obj[i+1].date && obj[i].state===obj[i+1].state){
test.date=obj[i].date;
test.state=obj[i].state;
test.result={};
for(var key in obj[i].result){
console.log(obj[i].result[key],obj[i+1].result[key]);
test.result[key]=obj[i].result[key]+obj[i+1].result[key];
}
temp.push(test)
i++;
}else{
test.date=obj[i].date;
test.state=obj[i].state;
test.result=obj[i].result;
temp.push(test)
}
}
}
运行之后的结果只有两个,少了最后一个,不知道问题出在那里?还望大神指点
试着写了下感觉代码挺麻烦.