>  기사  >  웹 프론트엔드  >  다른 배열의 일치하는 속성을 기반으로 개체 배열을 필터링하는 방법은 무엇입니까?

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

Linda Hamilton
Linda Hamilton원래의
2024-11-02 08:50:02161검색

How to Filter an Array of Objects Based on Matching Properties in Another Array?

다른 객체 배열을 사용하여 객체 배열 필터링

현재 작업은 다음을 기반으로 객체 배열(myArray)을 필터링하는 것입니다. 두 번째 객체 배열(myFilter)은 userid 및 projectid 속성이 myFilter의 속성과 일치하는 myArray의 객체만 반환합니다.

해결책

이를 달성하기 위해 필터와 일부 방법의 조합. 필터 메소드는 myArray의 각 요소를 반복하고 주어진 조건을 통과하는 요소만 포함하는 새 배열을 반환합니다. 이 경우 요소의 userid 및 projectid가 myFilter의 userid 및 projectid 쌍 중 하나와 일치하면 조건이 충족됩니다.

some 메소드는 필터 조건 내에서 myFilter의 요소 중 하나라도 충족하는지 확인하는 데 사용됩니다. 지정된 기준. 조건은 현재 myFilter 요소의 userid 및 projectid 속성이 현재 myArray 요소의 속성과 동일한지 확인합니다. 일치하는 항목이 발견되면 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>

출력

[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]

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

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