У меня есть 2 больших файла json с каждыми 200k объектами, и когда я пытаюсь выполнить цикл между 2 jsons для общего идентификатора, это занимает больше времени для выполнения.
Реализация 1
for (var i in matterData.data) {
const fobj = matterData.data[i];
const ma_array = [];
for (var j in activityData.data) {
const aobj = activityData.data[j];
if (fobj.id === aobj.matter.id) {
ma_array.push(aobj);
}
if (ma_array.length > 0) fobj.activities = ma_array;
}
}
Реализация 2
for (var i in matterData.data) {
//Activities
matters_array = [];
matters_array = activityData.data.filter(function (el) {
if (el.matter !== null) return el.matter.id == matterData.data[i].id;
});
if (matters_array.length > 0) matterData.data[i]["activities"] = matters_array;
}
Реализация 3
for (var i in matterData.data) {
matters_array = [];
for (var j in activityData.data) {
if (activityData.data[j]["matter"] !== null) {
if (matterData.data[i].id === activityData.data[j]["matter"].id) {
matters_array.push(activityData.data[j]);
}
if (matters_array.length > 0) matterData.data[i]["activities"] = matters_array;
}
}
}
Каждая реализация требует больше времени для выполнения.
ДеятельностиData будет иметь идентификатор, а такжеity.id, который связан с Материалом_данных.id
Любые идеи, пожалуйста, помогите
Данные по вопросам
var matterData= {
"data": [
{
"id": 1055395769,
"description": "Peters",
"status": "Pending",
"location": null,
"client_reference": "1532",
"billable": true,
"billing_method": "hourly",
"open_date": "2019-06-05",
"close_date": null,
}
]
};
Данные о деятельности
var activityData = {
"data": [
{
"id":285568423,
"type": "ExpenseEntry",
"date": "2011-01-01",
"quantity_in_hours": 1,
"rounded_quantity_in_hours": 1,
"quantity": 1,
"rounded_quantity": 1,
"price": 100,
"matter": {
"id": 1055395769
}
},
{
"id": 285568428,
"type": "MonEntry",
"matter": {
"id": 1055395769
}
},
{
"id": 285568442,
"type": "EEntry",
"matter": {
"id": 1055395769
}}]
};