Давайте предположим, что у вас есть данные CSV в двумерном массиве:
var data = [[AF,1800,3280000],
[AF,1820,3280000],
[AF,1870,4207000],
[AG,1800,37000],
[AG,1851,37000],
[AG,1861,37000]]
В этом примере я буду использовать вспомогательные функции jQuerys, поскольку это значительно облегчит работу без каких-либо дополнительных затрат.
// we will loop thru all the rows
// if the id does not belong to the entities then we will add the property.
// if the property does exist then we update the values
var entities = {}
$.each(data, function (i, n) {
// set property
if (!entities[n[0]]) {
entities[n[0]] = {
data : {
n[1]: n[2]
},
entity_meta: {
start: n[1],
end: n[1]
min: n[1]
max: n[1]
}
}
// update property
} else {
// add new data property
entities[n[0]]['data'][n[1]] = n[2];
// if the property should change then update it
if ( entities[n[0]]['entity_meta']['min'] > n[1] ) {
entities[n[0]]['entity_meta']['min'] = n[1];
}
}
});
Это, очевидно, не весь код, но он должен четко объяснять подход, который следует использовать.
Также не то, что ваша предполагаемая final структура объекта очень большая более сложный вы должны использовать массивы там, где это необходимо, особенно для entities
и data
.