Была идея сделать функцию которая принимает три массива которые я забираю из API.
window.addEventListener('DOMContentLoaded', async () => {
try {
const orderDataPromise = getOrderData();
const workDataPromise = getWorkData();
const workObjectDataPromise = getWorkObjectData();
const orderData = await orderDataPromise;
const workData = await workDataPromise;
const workObjectData = await workObjectDataPromise;
processing(orderData, workData, workObjectData);
} catch (error) {
console.log(error);
}
});
function getOrderData() {
return fetch('http://:3000/orderIdget')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.log(error));
}
function getWorkData() {
return fetch('http://:3000/information')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.log(error));
}
function getWorkObjectData() {
return fetch('http://:3000/Work_object')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.log(error));
}
function processing (orderData, workData, workObjectData){
console.log(orderData, workData, workObjectData);
}
и тут всё работает и всё хорошо мне нужно эти 3 массива объединить в один
по этому пишу
function processing (orderData, workData, workObjectData){
console.log("доступны и в функции", orderData, workData, workObjectData);
for (let i = 0; i < orderData.length; i++) {
const orderId = orderData[i].order_id;
const matchingWorkItems = workData.filter(workItem => workItem.id_order === orderId);
// Добавляем name_object в текущий элемент orderData, если есть соответствующие элементы в workData
if (matchingWorkItems.length > 0) {
matchingWorkItems.forEach(workItem => {
orderData.splice(i + 1, 0, { ...orderData[i], name_object: workItem.name_object });
});
}
}
}
по идеи эта функция должна была делать следующие, так как в массиве orderData и workData, есть общий item, а если быть точнее, то item.order_id. и мне нужно следующее если item.order_id из массива orderData и item.order_id из массива workData равны между собой, то тогда в массив orderData дозапишется item.name_object из массива workData. Но вместо этого я получил бесконечную загрузку страницы