Javascript에서 id로 객체 배열에서 객체를 빼는 방법
8479 단어 nodejavascript
따라서 두 개의 개체가 있습니다. 하나는 데이터베이스에 내 데이터가 있고 다른 하나는 추가할 데이터가 있습니다.
각각의 예에서: records 및 mainArr.
제목에서 알 수 있듯이 이 경우 두 번째(mainArr) 배열에서 첫 번째(레코드)의 요소를 id로 빼야 합니다.
채택할 수 있는 많은 알고리즘이 있습니다. 아래는 예입니다.
const records = [
{
id: 1,
name: "example1"
},
{
id: 2,
name: "example2"
},
{
id: 3,
name: "example3"
},
{
id: 4,
name: "example4"
},
];
const mainArr = [
{
id: 3,
name: "example3"
},
{
id: 4,
name: "example4"
},
{
id: 5,
name: "example5"
},
{
id: 6,
name: "example6"
},
];
const recordsById = records.reduce((ac, record) => {
if (record.id) {
return {
...ac,
[record.id]: record
}
}
return ac
}, {});
const objClean = mainArr.filter((item) => {
const isDuplicated = recordsById[item.id];
return !isDuplicated;
});
console.log(objClean);
reduce을 사용하여 식별자를 키로, 객체 자체를 값으로 사용하여 객체 배열을 편리하게 얻습니다.
그러면 다음과 유사한 결과가 나타납니다.
recordsById: {
1: { name: "example1", id: 1 },
2: { name: "example2", id: 2 },
3: { name: "example3", id: 3 },
4: { name: "example4", id: 4 },
}
그런 다음 filter 메서드를 통해 두 번째 배열(mainArr)의 요소에 생성된 매핑의 요소가 포함되어 있는지 확인할 수 있습니다.
깨끗한 개체(objClean)를 출력합니다.
다음은 동일한 논리의 보다 간결한 버전입니다.
const recordsById = records.reduce((ac, record) => {
return record.id ? { ...ac, [record.id]: record } : ac;
}, {});
const objClean = mainArr.filter(item => !recordsById[item.id]);
Reference
이 문제에 관하여(Javascript에서 id로 객체 배열에서 객체를 빼는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pestrinmarco/how-to-subtract-objects-from-an-array-of-objects-by-id-in-javascript-6e9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)