중첩 된 값을 기준으로 배열로 객체 배열을 필터링하는 값을 기준으로 중첩 된 값을 기준으로 객체를 필터링하려고합니다. 사물. 목표는 중첩 된 속성에 대한 특정 값을 가진 객체 만 포함하는 새 배열을 만드는 것입니다.
이를 달성하려면 다음 공식을 사용했습니다. 필터 ((element) => element.subelements.some ((subelement) => subelement.surname === 1); -성 속성을 가진 요소는 1과 같습니다. 그러나 출력은 예상 한 것이 아닙니다. 필터 조건과 일치하지 않는 하위 요소를 제거하는 대신 일치하지 않는 내용을 포함하여 모든 하위 요소로 객체를 반환합니다.
필터링을 개선하려면 매핑 기능을 사용할 수 있습니다. 필터 기능 대신. 이렇게하면 원래 배열에서 각 요소를 변환하여 새 배열을 만들 수 있습니다. 변환 된 요소에는 필터 조건과 일치하는 하위 요소 만 포함됩니다.
let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));
이 개선 된 공식에서 :
맵 함수는 배열 배열에서 각 요소를 반복합니다. 원래 요소의 속성과 필터링 된 하위 요소 배열이 포함되어 있습니다.
let filteredArray = arrayOfElements.map((element) => { return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)} })
스프레드 연산자 (...)는 원래 요소의 속성을 필터링 된 하위 요소 배열과 결합하는 새 개체를 만드는 데 사용됩니다. 성 속성을 가진 하나 이상의 하위 요소를 가진 객체 만 포함하는 배열은 1과 같으며 각 객체는 일치하는 하위 요소 만 포함됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3