我有一个原始的"entry"one_answers"exit"数据,作为person的json(按日期排序)。
[{
id: 1,
dateTime: "2015-11-26T16:30:48.000Z",
gateNumber: "192.168.0.202",
gateType: "entry",
personId: 207
}, // the exit object is missing for id=1. I need to create same object as exit vice versa...
{
id: 2,
dateTime: "2015-11-26T16:35:44.000Z",
gateNumber: "192.168.0.201",
gateType: "entry",
personId: 207
}, {
id: 3,
dateTime: "2015-11-26T16:36:40.000Z",
gateNumber: "192.168.0.202",
gateType: "exit",
personId: 207
}, {
id: 4,
dateTime: "2015-11-26T16:37:22.000Z",
gateNumber: "192.168.0.201",
gateType: "entry",
personId: 207
}, {
id: 5,
dateTime: "2015-11-26T16:38:55.000Z",
gateNumber: "192.168.0.201",
gateType: "exit",
personId: 207
}]
它需要像进入->退出->进入->退出一样。但有时会丢失一些"出口"或一些"入口"对象。
因此,我试图检测丢失的"对象",并为大容量插入创建一个数组,因为差异为0秒,将失败。
所以,解决方案应该是针对上述情况;
[
[1, "2015-11-26T16:30:48.000Z", "192.168.0.202", "exit", 207],
//... if there are any more..
]
var json_obj = [{
id: 1,
dateTime: "2015-11-26T16:30:48.000Z",
gateNumber: "192.168.0.202",
gateType: "entry",
personId: 207
},
{
id: 2,
dateTime: "2015-11-26T16:35:44.000Z",
gateNumber: "192.168.0.201",
gateType: "entry",
personId: 207
}, {
id: 3,
dateTime: "2015-11-26T16:36:40.000Z",
gateNumber: "192.168.0.202",
gateType: "exit",
personId: 207
}, {
id: 4,
dateTime: "2015-11-26T16:37:22.000Z",
gateNumber: "192.168.0.201",
gateType: "entry",
personId: 207
}, {
id: 5,
dateTime: "2015-11-26T16:38:55.000Z",
gateNumber: "192.168.0.201",
gateType: "exit",
personId: 207
}];
your_new_array = json_obj.map(function(obj){
if(!obj.hasOwnProperty('exit'))
{
obj.exit = 'exit value';
}
if(!obj.hasOwnProperty('entry'))
{
obj.entry = 'entry value';
}
return obj;
});
console.log(your_new_array);
https://jsfiddle.net/4f5Lpcge/小提琴:)我希望它有帮助!