>웹 프론트엔드 >JS 튜토리얼 >다른 개체 배열을 기반으로 개체 배열을 필터링하는 방법은 무엇입니까?

다른 개체 배열을 기반으로 개체 배열을 필터링하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-02 03:34:30590검색

How to Filter an Array of Objects Based on Another Array of Objects?

다른 객체 배열을 기반으로 객체 배열 필터링

문제:

주어진 두 개 객체 배열의 경우 목표는 두 번째 배열을 참조로 사용하여 특정 기준에 따라 첫 번째 배열을 필터링하는 것입니다. 특히, 첫 번째 배열을 필터링하여 두 번째 배열의 개체와 특정 속성(userid 및 projectid)과 일치하는 개체만 포함하려고 합니다.

해결책:

필터와 배열의 일부 메서드를 활용하면 다음 솔루션을 얻을 수 있습니다.

  1. 첫 번째 배열 반복:
    첫 번째 배열에서 필터 메서드를 사용하여 반복합니다.
  2. 일치 확인:
    필터 콜백 함수 내에서 두 번째 배열의 some 메소드를 사용하여 첫 번째 배열의 현재 요소와 일치하는 개체가 있는지 확인합니다. userid 및 projectid 속성을 기반으로 배열합니다.
  3. 필터링:
    일치하는 항목이 있으면 some 함수는 true를 반환하고 필터링된 결과 배열에 해당 요소를 유지합니다.

예:

<code class="js">const myArray = [{ userid: "100", projectid: "10", rowid: "0" },
                { userid: "101", projectid: "11", rowid: "1" },
                { userid: "102", projectid: "12", rowid: "2" },
                { userid: "103", projectid: "13", rowid: "3" },
                { userid: "101", projectid: "10", rowid: "4" }];

const myFilter = [{ userid: "101", projectid: "11" },
                { userid: "102", projectid: "12" },
                { userid: "103", projectid: "11" }];

const myArrayFiltered = myArray.filter((el) => {
  return myFilter.some((f) => {
    return f.userid === el.userid && f.projectid === el.projectid;
  });
});

console.log(myArrayFiltered);</code>

예상 결과:

<code class="js">[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]</code>

위 내용은 다른 개체 배열을 기반으로 개체 배열을 필터링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.