Как сказано в заголовке, у меня есть ряд изменений массива, таких как pushing
, reducing
и mapping
.
Для начала ... У меня есть 2 JSON с именем assignee_list
и ticket_list
. и по какой-то причине, когда условие выполняется, мне нужно объединить эти 2 объекта в один.
После получения ticket_list
из запроса api. Затем будет вызвана функция _ticketList()
. Это будет выглядеть так.
list_array: [] //global variable
_ticketList() {
var temp = [];
var x = 0;
this.assignee_list.forEach(user => {
this.ticket_list.forEach(tix => {
if (user.id == tix.technician_id) { //this is the condition
temp.push({
technician_id: user.id,
name: user.name,
data: tix,
})
}
});
x++;
});
if (x == this.assignee_list.length) {
var result = Object.values(temp.reduce((r, {technician_id, name, data}) => {
if (r[technician_id]) {
r[technician_id].data.push(data);
r[technician_id].name = name;
r[technician_id].technician_id = technician_id;
} else {
r[technician_id] = { technician_id, name, data: [data]};
}
}, {}))
const resultArray = Object.keys(result).map(i => result[i]);
this.list_array = resultArray.reverse();
}
}
Когда я визуализирую list_array
во внешнем интерфейсе, он работает. Однако он был отрисован еще до того, как была произведена серия изменений массива. В результате мне приходится ждать минимум 10 секунд, чтобы отобразить все элементы, в худшем случае: иногда он вообще ничего не отображает, и ему нужно обновить sh страницу, чтобы снова отобразить элементы.
Есть ли какие-либо альтернативы на пути достижения list_array
без использования нескольких функций изменения массива? Есть идеи, как сделать его максимально оптимизированным?
Извините за плохой английский sh:))