다차원 배열 우회

사용자 3818229

복잡한 배열에서 배열로 데이터를 가져와야합니다. 예를 들어 다음과 같은 구조가 있습니다.

animals =
     /*...*/
         list: [
           {
             type: "fluffy"
             withCategories: false
             animal: [
               {
                 name: "Patrik"
                 description: "..."
                 price: 135
                 weight: 220
                 rating: 94
               }
               {
                 name: "Mike"
                 description: "..."
                 price: 135
                 weight: 235
                 rating: 97
               }
             ]
           }
           {
             imageUrl: "/img/borsh.jpg"
             type: "pets"
             withCategories: true
             categories: [
               {
                 name: "parrot"
                 imageUrl: "/img/parrot.jpg"
                 withCategories: false
                 animal: [
                   {
                     name: "Kesha"
                     description: "..."
                     price: 75
                     weight: 250
                     rating: 89
                   }
                 ]
               }
             ]
           }

결과적으로 동물 요소가있는 배열 하나가 필요합니다. // result = [object1-> name : Patrik, price : 135 ..], ..., [object3-> name : Kesha, description : ...] As 하위 레벨에서 "withCategories"= true 인 경우 재귀 적으로 내려가는 것을 볼 수 있습니다. 나는 그것을 깨닫기 위해 노력했습니다.

PlacesService.getAllAnimals = ->
    merged = []
    temp = (getAnimalByCategory(category) for category in animals.list)
    merged = merged.concat.apply(merged, temp)
    return merged

  getAnimalByCategory = (category) ->
    if category.withCategories == false
      return category.animal
    else
      (getAnimalByCategory(an) for an in category.categories)

그러나 뭔가 잘못되었습니다. (누군가 제발 도와 주시겠습니까? 실수를 찾을 수 없습니다.

Bergi

당신은 당신이 기대하는 getAnimalByCategory루프의 결과가로 병합 할 수 있습니다 그래서, 단순 목록을 반환합니다 concat. 그러나 재귀 적 인 경우에는 반환하지 않습니다.

PlacesService.getAllAnimals = ->
  [].concat.apply([], getAnimalByCategory(category) for category in animals.list)

getAnimalByCategory = (category) ->
  if not category.withCategories
    category.animal
  else
    [].concat.apply([], getAnimalByCategory(an) for an in category.categories)

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다차원 배열 우회

분류에서Dev

다차원 배열 채우기

분류에서Dev

PHP 다차원 배열 채우기

분류에서Dev

Java 다차원 배열 채우기

분류에서Dev

집합의 다차원 배열 회수 열

분류에서Dev

PHP에서 다차원 배열의 재귀 순회

분류에서Dev

변수에 따라 다차원 배열을 채우는 방법

분류에서Dev

JSON에서 다차원 배열 채우기

분류에서Dev

PHP에서 다차원 배열의 "간격"채우기

분류에서Dev

다차원 배열로 테이블을 채우는 방법

분류에서Dev

내부 배열 인 경우 값을 기준으로 다차원 배열 정렬

분류에서Dev

PHP 다차원 배열에서 자바 스크립트 배열 채우기

분류에서Dev

foreach에서 배열 요소가 누락 된 경우 다차원 배열

분류에서Dev

2 차원 배열의 루비 배열, 검색 / 조회?

분류에서Dev

다양한 차원의 데이터 프레임으로 다차원 배열 채우기

분류에서Dev

JavaScript에서 다차원 배열을 다차원 개체에 채우는 방법은 무엇입니까?

분류에서Dev

2 차원 배열 채우기

분류에서Dev

2 차원 배열의 경우 Numpy

분류에서Dev

2 차원 배열의 경우 atoi ()

분류에서Dev

PHP는 다차원 배열에서 드롭 다운 미리 채우기

분류에서Dev

dict 할 다차원 배열

분류에서Dev

다차원 배열 복제

분류에서Dev

다차원 배열 JS snippest

분류에서Dev

다차원 배열 논리

분류에서Dev

PHP Explode 다차원 배열

분류에서Dev

다차원 배열 출력

분류에서Dev

다차원 배열 정렬

분류에서Dev

다차원 배열 표시

분류에서Dev

Perl의 다차원 배열