У меня есть массив, содержащий объекты, где в некоторых объектах есть ключ rpId
. Цель состоит в том, чтобы отделить / переместить объекты, которые возвращают undefined, в отдельный массив и удалить их из первого массива.
например: results = [{id: 1}, {id: 2, rpId: 1076}, {id: 3}, {id: 4, rpId: 303}];
target: results = [{id: 2, rpId: 1076}, {id: 4, rpId: 303}]
и stations = [{id: 1}, {id: 3}]
Мой текущий подход можно увидеть ниже. Как видно, я ошибаюсь array1, потому что он содержит объект с rpId, плюс array2 возвращает ключи объекта, и я хотел бы прочитать весь объект, а не только «undefined» ключа.
const array1 = [{id: 1}, {id: 2, rpId: 1076}, {id: 3}, {id: 4, rpId: 303}];
const array2 = [];
const mapping = array1.map((e) => e.rpId);
console.log("mapping",mapping);
mapping.forEach(function(elem, index){
elem === undefined ? array2.push(elem) && array1.splice(index, elem === undefined) && console.log(elem): console.log("defined", elem);
}),
console.log("1", array1); // [{ id: 2, rpId: 1076 }, { id: 3 }]
console.log("2", array2); // [undefined, undefined]