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 중국어 웹사이트의 기타 관련 기사를 참조하세요!