>  기사  >  웹 프론트엔드  >  JavaScript에서 여러 조건으로 개체 배열을 필터링하는 방법은 무엇입니까?

JavaScript에서 여러 조건으로 개체 배열을 필터링하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-26 22:07:29857검색

How to Filter an Array of Objects by Multiple Conditions in JavaScript?

JavaScript의 다중 필터 조건을 기반으로 객체 배열 단순화

질문:

어떻게 JavaScript의 여러 필터 조건을 기반으로 객체 배열을 단순화할 수 있나요? 예를 들어, 다음 배열을 사용하면:

var users = [
  {
    name: 'John',
    email: '[email protected]',
    age: 25,
    address: 'USA'
  },
  {
    name: 'Tom',
    email: '[email protected]',
    age: 35,
    address: 'England'
  },
  {
    name: 'Mark',
    email: '[email protected]',
    age: 28,
    address: 'England'
  }
];

필터 개체:

var filter = {
  address: 'England',
  name: 'Mark'
};

주소와 이름을 기준으로 모든 사용자를 필터링하고 싶습니다. 현재 내 함수는 첫 번째 반복에서 일치하는 주소를 가진 모든 사용자를 추가하고 두 번째 반복에서는 일치하는 이름을 가진 마지막 사용자만 추가합니다. 하지만 두 조건을 동시에 기준으로 필터링해야 합니다.

답변:

여러 조건을 기반으로 개체 배열을 필터링하려면 다음 접근 방식을 활용할 수 있습니다.

users = users.filter(function(item) {
  for (var key in filter) {
    if (item[key] === undefined || item[key] != filter[key])
      return false;
  }
  return true;
});

이 코드는 객체 배열과 필터 객체를 모두 반복하여 배열의 각 객체가 필터에 지정된 모든 조건과 일치하는지 확인합니다. item[key] 및 filter[key] 비교는 객체 item의 속성 키 값이 필터 객체의 해당 값과 일치하는지 확인합니다. 조건 중 하나라도 실패하면 필터 함수는 false를 반환하고 필터링된 결과에서 해당 개체를 제외합니다. 그렇지 않으면 true를 반환하여 개체가 모든 필터 조건을 충족함을 나타냅니다.

이 접근 방식을 적용하면 여러 기준에 따라 개체 배열을 효과적으로 필터링하여 모든 조건을 충족하는 개체만 필터링할 수 있습니다. 결과에 포함됩니다.

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

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