개체의 배열을 가지고 있는데 그 개체 안에 name
속성이 있습니다.문자열 속성이있는 배열 객체와 문자열 배열을 비교하는 가장 좋은 방법은 무엇입니까?
const objArr = [ { name: "Avram" }, { name: "Andy" } ];
난 이름을 포함한 외부 광원으로부터 문자열의 배열을 회수하고있다. strArr
가 objArr
에서 객체에 속성 name
로 존재하지 않는 문자열을 포함하는 경우
const strArr = [ "Avram", "Andy", "Brandon" ];
, 나는 새로운 객체를 생성하고 objArr
에 밀어해야합니다. 예를 들어
: 분명히 objArr.push({ name: "Brandon" });
, 내가 중첩 루프를 사용할 수 있지만 가능하면 피하기 싶습니다. 이 작업을 프로그래밍 방식으로 수행하는 가장 좋은 방법은 무엇입니까? strArr
동일 구성이
const objArr = [ { name: "Avram" }, { name: "Andy" } ];
const strArr = [ "Avram", "Andy", "Brandon" ];
const names= objArr.map(x => x.name);
strArr.forEach(str => {
if (! names.includes(str)) {
objArr.push({name: str});
}
});
console.log(objArr);
당신이 지금까지 가지고있는 가장 좋은 방법은 무엇입니까의 배열을 수정
map
재 다음, 중복을 제거하기 위해Set
를 통해 실행? 지도, 정렬 (두 번), 두 개의 목록을 비교하는 O (n)을 포함하는 솔루션을 생각해 볼 수 있습니다. 편집 : 아니면 그냥 세트를 사용하여 해시가 처리하도록 할 수 있습니까? 정렬을 저장합니다. – Shammoo