2016-01-14 3 views
0

У меня есть исходные данные «ввода» и «выхода» как json для человека (отсортировано по дате).Json array build

[{ 
    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 
}] 

Необходимо, чтобы вход -> exit -> entry -> exit. Но иногда некоторые объекты «выхода» или «входа» отсутствуют.

Так что я пытаюсь обнаружить отсутствующие «объекты» и создать массив для объемной вставки, поскольку разница будет 0 секунд и не удастся.

Итак, решение должно быть выполнено для случая выше;

[ 
    [1, "2015-11-26T16:30:48.000Z", "192.168.0.202", "exit", 207], 
    //... if there are any more.. 
] 
+0

Где находится массив массивов в массиве? – hurricane

+0

На самом деле, я создал с циклом for, но я пытаюсь сделать это функциональным способом. Но я не уверен, хватит ли сокращения или нет. – serkan

ответ

-1
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/ для скрипки :) Я надеюсь, что это помогает!

+0

lol downvoted xD – melvnberd