Добрый день. Мне нужно сделать функцию, которая будет принимать два массива и контролировать, если дата элемента первого массива равна дате элемента второго массива, то элемент первого массива должен быть заменен элементом второй массив, если даты не совпадают, то элемент первого массива будет заменен пустым объектом. Например, есть два массива.
let array1 = [
{
date: '2020-04-20',
groups: ['apple', 'banana'],
teachers: ['potate', 'carrot'],
},
{
date: '2020-04-21',
groups: [],
teachers: [],
},
{
date: '2020-04-22',
groups: ['tomato', 'peach'],
teachers: ['orange', 'cucumber'],
},
];
let array2 = [
{
date: '2020-04-20',
groups: ['car', 'plane'],
teachers: ['drive', 'fly'],
},
{
date: '2020-04-21',
groups: ['lalal', 'kykyky'],
teachers: ['lalal', 'kykyky'],
}
];
Два вышеуказанных массива принимаются функцией, и функция должна возвращать такой массив:
let expectResult = [
{
date: '2020-04-20',
groups: ['car', 'plane'],
teachers: ['drive', 'fly'],
},
{
date: '2020-04-21',
groups: ['lalal', 'kykyky'],
teachers: ['lalal', 'kykyky'],
}
{
date: '2020-04-22',
groups: [],
teachers: [],
},
]
Спасибо заранее за вашу помощь.
Вот что я сделал сам:
let payload = [];
for (let i = 0; i < payload.length; i++) {
for (let j = 0; j < combineArrays.length; j++) {
if (payload[i].date === combineArrays[j].date) {
console.log(i, j);
finalArray.splice(i - 1, 1, combineArrays[j]);
} else {
finalArray.splice(i - 1, 1,{
date: payload[i].date,
groups: [],
teachers: [],
time: [],
type: [],
});
}
}
}