중첩 된 객체 배열 내에서 일치하는 항목 반환

권 제이크

다음과 같이 scheduleOn 데이터로 그룹화 된 배열이 있습니다.

[{
scheduledOn: "2020-02-05T00:00:00"
matches:
{id: 1, homeTeamName: "BLUE", homeTeamId: 1, homeScore: 1, awayTeamName: "Red", awayTeamId: 2, …}
{id: 2,homeTeamName: "Red", homeTeamId: 2, homeScore: 1, awayTeamName: "Yellow", awayTeamId: 3, …}
},
{
scheduledOn: "2020-01-06T00:00:00"
matches:
0: {id:3, homeTeamName: "BLUE", homeTeamId: 1, homeScore: 0, awayTeamName: "Yellow", awayTeamId: 3, …}
}]

선택한 ID와 일치하는 하나의 일치 객체 (배열 아님)를 반환하고 싶습니다.

내가 시도한 가능한 해결책 :

matches.map(match => match.matches
              .find(m => m.id === selectedId))

이것은 다음을 반환합니다.

 [{

    id: 1, homeTeamName: "BLUE", homeTeamId: 1, homeScore: 1, awayTeamName: "Red", awayTeamId: 2, …
    }]

그러나 나는 이것이 배열 대신 객체가되기를 바랍니다.

내가 시도한 가능한 해결책 2 :

matches.map(match => match.matches
              .filter(m => m.id === selectedId))
              .map(match => console.log(match

)

이것은 다음을 반환합니다.

 [
    {id: 1, homeTeamName: "BLUE", homeTeamId: 1, homeScore: 1, awayTeamName: "Red", awayTeamId: 2, …}
    ]

그러나 이것은 또한 배열로 반환됩니다.

배열 대신 id 개체를 일치시킬 수있는 방법이 있습니까?

모든 도움에 감사드립니다

예브 겐 고르 분 코프

모든 matches속성을 단일 배열로 병합 flatMap()하고 검색 할 수 있습니다.

const src = [{"scheduledOn":"2020-02-05T00:00:00","matches":[{"id":1,"homeTeamName":"BLUE","homeTeamId":1,"homeScore":1,"awayTeamName":"Red","awayTeamId":2},{"id":2,"homeTeamName":"Red","homeTeamId":2,"homeScore":1,"awayTeamName":"Yellow","awayTeamId":3}]},{"scheduledOn":"2020-01-06T00:00:00","matches":[{"id":3,"homeTeamName":"BLUE","homeTeamId":1,"homeScore":0,"awayTeamName":"Yellow","awayTeamId":3}]}],
      itemWithId2 = src.flatMap(({matches}) => matches).find(({id}) => id==2)
      
console.log(itemWithId2)      

그러나 명심해야 것은 Microsoft 브라우저에서 (적어도 IE가 사라질 때까지) 실패수 있습니다 (다른 많은 멋진 것들과 마찬가지로).

이 경우 arr.reduce((r,{matches}) => r.concat(matches), [])대신 사용할 수 있습니다 flatMap().

큰 배열을 다룰 때 @Zohaibljaz가 제안한 중첩 된 발견이 더 성능이 좋습니다.

내 구현은 용납 할 수 없을 정도로 읽을 수없는 것입니다 .

const src = [{"scheduledOn":"2020-02-05T00:00:00","matches":[{"id":1,"homeTeamName":"BLUE","homeTeamId":1,"homeScore":1,"awayTeamName":"Red","awayTeamId":2},{"id":2,"homeTeamName":"Red","homeTeamId":2,"homeScore":1,"awayTeamName":"Yellow","awayTeamId":3}]},{"scheduledOn":"2020-01-06T00:00:00","matches":[{"id":3,"homeTeamName":"BLUE","homeTeamId":1,"homeScore":0,"awayTeamName":"Yellow","awayTeamId":3}]}]

let objectHavingIdOf2 = {}

src.find(({matches}) => 
  matches.find(item => 
    item.id == 2 ? 
    (objectHavingIdOf2 = item, true) :
    false))
    
console.log(objectHavingIdOf2)    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

일반 배열을 부모 객체에 중첩 된 중첩 객체로 변환하는 방법

분류에서Dev

Mongodb : 중첩 된 객체 배열 내에서 필드를 변환하는 방법

분류에서Dev

중첩 된 맵 작업을 사용하여 배열에서 객체 반환

분류에서Dev

MongoDB는 객체 내에서 속성을 뺀 중첩 된 객체 배열을 반환합니다 (또한 .then ()은 집계와 함께 작동하지 않음).

분류에서Dev

중첩 된 항목이있는 배열에서 항목 삭제

분류에서Dev

JS의 중첩 된 목록 항목의 다차원 배열 또는 json 객체

분류에서Dev

중첩 된 배열 내에서 하위 문서 요소 만 일치하는 경우 문서 반환

분류에서Dev

반응에서 중첩 된 객체 배열이있는 바인딩 확인란

분류에서Dev

중첩 된 객체가있는 JSON을 JS의 목록 배열로 변환

분류에서Dev

객체 배열에있는 중첩 된 객체의 Lodash 맵 값

분류에서Dev

vue 2에서 객체 배열과 중첩 된 객체를 반복하는 방법

분류에서Dev

MongoDB : 객체에 중첩 된 다른 배열에 중첩 된 배열의 첫 번째 요소 만 반환하도록 투영을 만듭니다.

분류에서Dev

PHP에서 배열 내부에 중첩 된 객체를 계산하는 방법

분류에서Dev

반응에서 중첩 된 객체 배열 렌더링

분류에서Dev

중첩 된 객체 배열을 반복하여 다른 객체 배열과 일치

분류에서Dev

객체 배열 내부에 중첩 된 배열을 설정하는 방법

분류에서Dev

중첩 된 객체 배열이있는 객체 배열을 배열 형 객체로 변환

분류에서Dev

중첩 배열에서 고유 항목을 반환하는 방법

분류에서Dev

중첩 된 개체 배열에서 일치하는 모든 항목의 전체 경로를 다시 자릅니다.

분류에서Dev

jq를 사용하여 중첩 된 객체 배열 변환

분류에서Dev

jq-단일 배열에서 중첩 된 객체를 선택하는 방법

분류에서Dev

Terraform에서 중첩 된 객체 목록을 반복하는 방법

분류에서Dev

객체를 객체 배열 내에 중첩 된 객체 배열로 푸시

분류에서Dev

중첩 된 배열을 중첩 된 객체로 변환

분류에서Dev

Logic Apps의 중첩 된 Json 배열에서 항목을 반복하고 추출하는 방법

분류에서Dev

자바 스크립트에서 배열을 중첩 된 객체로 변환하는 방법

분류에서Dev

중첩 된 json을 Javascript에서 객체 배열로 변환하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 중첩 된 객체 배열을 반복하는 방법

분류에서Dev

Moya.Response 쿼리를 통해 반환 된 객체에서 중첩 된 JSON 배열을 구문 분석하는 방법

Related 관련 기사

  1. 1

    일반 배열을 부모 객체에 중첩 된 중첩 객체로 변환하는 방법

  2. 2

    Mongodb : 중첩 된 객체 배열 내에서 필드를 변환하는 방법

  3. 3

    중첩 된 맵 작업을 사용하여 배열에서 객체 반환

  4. 4

    MongoDB는 객체 내에서 속성을 뺀 중첩 된 객체 배열을 반환합니다 (또한 .then ()은 집계와 함께 작동하지 않음).

  5. 5

    중첩 된 항목이있는 배열에서 항목 삭제

  6. 6

    JS의 중첩 된 목록 항목의 다차원 배열 또는 json 객체

  7. 7

    중첩 된 배열 내에서 하위 문서 요소 만 일치하는 경우 문서 반환

  8. 8

    반응에서 중첩 된 객체 배열이있는 바인딩 확인란

  9. 9

    중첩 된 객체가있는 JSON을 JS의 목록 배열로 변환

  10. 10

    객체 배열에있는 중첩 된 객체의 Lodash 맵 값

  11. 11

    vue 2에서 객체 배열과 중첩 된 객체를 반복하는 방법

  12. 12

    MongoDB : 객체에 중첩 된 다른 배열에 중첩 된 배열의 첫 번째 요소 만 반환하도록 투영을 만듭니다.

  13. 13

    PHP에서 배열 내부에 중첩 된 객체를 계산하는 방법

  14. 14

    반응에서 중첩 된 객체 배열 렌더링

  15. 15

    중첩 된 객체 배열을 반복하여 다른 객체 배열과 일치

  16. 16

    객체 배열 내부에 중첩 된 배열을 설정하는 방법

  17. 17

    중첩 된 객체 배열이있는 객체 배열을 배열 형 객체로 변환

  18. 18

    중첩 배열에서 고유 항목을 반환하는 방법

  19. 19

    중첩 된 개체 배열에서 일치하는 모든 항목의 전체 경로를 다시 자릅니다.

  20. 20

    jq를 사용하여 중첩 된 객체 배열 변환

  21. 21

    jq-단일 배열에서 중첩 된 객체를 선택하는 방법

  22. 22

    Terraform에서 중첩 된 객체 목록을 반복하는 방법

  23. 23

    객체를 객체 배열 내에 중첩 된 객체 배열로 푸시

  24. 24

    중첩 된 배열을 중첩 된 객체로 변환

  25. 25

    Logic Apps의 중첩 된 Json 배열에서 항목을 반복하고 추출하는 방법

  26. 26

    자바 스크립트에서 배열을 중첩 된 객체로 변환하는 방법

  27. 27

    중첩 된 json을 Javascript에서 객체 배열로 변환하는 방법은 무엇입니까?

  28. 28

    자바 스크립트에서 중첩 된 객체 배열을 반복하는 방법

  29. 29

    Moya.Response 쿼리를 통해 반환 된 객체에서 중첩 된 JSON 배열을 구문 분석하는 방법

뜨겁다태그

보관