Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 중복되지 않는 이름의 객체만 배열에 추가하는 방법

배열에 새로운 객체를 추가할 때, 이미 동일한 이름을 가진 객체가 존재하는 경우에는 추가하지 않고, 존재하지 않는 경우에만 추가하고 싶다면 push() 메서드와 forEach() 메서드를 함께 사용하면 됩니다.

동작 원리

추가할 이름 목록을 forEach()로 순회하면서, 각 이름이 기존 배열에 존재하는지 find()로 확인합니다. 존재하지 않는 경우에만 push()를 통해 새 객체를 배열 끝에 추가합니다. 이렇게 하면 중복된 데이터가 배열에 들어가는 것을 효과적으로 방지할 수 있습니다.

예제 코드

var details = [{name:"John"},{name:"David"}]
var addObject = ["Mike","Sam"];
addObject.forEach( obj1 => {
    if(!details.find( obj2 => obj2===obj1 ))
        details.push({name:obj1})
})
console.log(details);

실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.

node fileName.js

여기서는 파일 이름이 demo165.js라고 가정합니다.

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

PS C:\Users\Amit\javascript-code> node demo165.js
[
    { name: 'John' },
    { name: 'David' },
    { name: 'Mike' },
    { name: 'Sam' }
]

출력 결과를 보면 기존의 'John'과 'David' 객체 뒤에 중복되지 않은 'Mike'와 'Sam' 객체만 성공적으로 추가된 것을 확인할 수 있습니다. 만약 addObject 배열에 'John'이 포함되어 있었다면, 이미 존재하기 때문에 배열에 다시 추가되지 않습니다.