【发布时间】:2018-08-01 08:56:51
【问题描述】:
我想比较 node.js 中的数组和对象数组,并根据比较生成一个新的 json 对象。 在下面的代码中,我有 "dateList" 日期列表和 result 有 json 数组,现在我想比较 dateList 和结果,如果结果对象有日期dateList 的值,然后我们必须获取执行值并推送到新数组中,如果不相等则我们必须推送为 0。
服务器代码:
var dateList = [
"2018-08-01",
"2018-07-31",
"2018-07-30",
"2018-07-29",
"2018-07-28",
"2018-07-27",
"2018-07-26"
]
var result = [{
CDate: '2018-07-31',
executions: 1
},
{
CDate: '2018-07-30',
executions: 2
},
{
CDate: '2018-07-27',
executions: 3
},
{
CDate: '2018-07-26',
executions: 2
}
];
var allList = [];
for (key in dateList) {
for (keyResult in result) {
if (dateList[key] === result[keyResult].CDate) {
var obj = {
"date": dateList[key],
"value": result[keyResult].executions
}
allList.push(obj);
break;
} else {
var obj = {
"date": dateList[key],
"value": 0
}
allList.push(obj)
break;
}
}
}
console.log(allList);
电流输出:
[{
"date": "2018-08-01",
"value": 0
},
{
"date": "2018-07-31",
"value": 1
},
{
"date": "2018-07-30",
"value": 0
},
{
"date": "2018-07-29",
"value": 0
},
{
"date": "2018-07-28",
"value": 0
},
{
"date": "2018-07-27",
"value": 0
},
{
"date": "2018-07-26",
"value": 0
}
]
预期输出:
[{
"date": "2018-08-01",
"value": 0
},
{
"date": "2018-07-31",
"value": 1
},
{
"date": "2018-07-30",
"value": 2
},
{
"date": "2018-07-29",
"value": 0
},
{
"date": "2018-07-28",
"value": 0
},
{
"date": "2018-07-27",
"value": 3
},
{
"date": "2018-07-26",
"value": 2
}
]
请帮忙
【问题讨论】: