2017-05-21 1 views
0

나는 종에 의해 그룹화하려고 시도하고있는 동물의 Lodash 목록을 가지고 있습니다. 먼저 JSON을 집어 넣은 다음 그룹화를 적용한 다음 이온 식 목록에 for 루프를 넣습니다. 그룹화가 없으면 데이터가 목록에로드되지만 그룹화를 적용 할 때 데이터가 정의되지 않은 상태로 되돌아옵니다.정의에 의한 Lodash 그룹

// Get the list of residents 
this.wwapi.getRepoData('discovery/find/' + this.section).subscribe(data => { 
    this.allResidents = data; 
    this.allResidentsAlphabet = _.chain(data).groupBy('Species').toPairs().map(item => _.zipObject(['SpeciesName', 'Species', item])).value(); 
    this.residents = this.allResidentsAlphabet; 
}); 

더미 JSON 데이터는 다음과 같이 구성되어있다 :

{"Profileid":0, 
"Name":"Annie", 
"Dateadded":null, 
"Picture":"assets/img/mammals/hero/1.jpg", 
"About":null, 
"Habitat":null, 
"Story":null, 
"Sizegraphic":null, 
"Discoveryid":"mammals", 
"Age":null, 
"Ageinwild":null, 
"Food":null, 
"Foodinwild":null, 
"Avgheight":null, 
"Avgweight":null, 
"Species":"skunk", 
"Height":null, 
"Weight":null, 
"Likes":null}] 

나는 문제가 나는 데이터에 대한 콘솔 로그에서 얻는 수익으로 매핑 될 수 용의자 :

개체 유형 : 정의되지 않음 SpeciesName : 정의되지 않은 스컹크, [개체 개체], [개체 개체] : 정의되지 않음

그래서 나는 그것이 그것을 돌려주고있는 것을 볼 수 있지만 이상한 방법으로? 당신이 다음을 사용하는 경우

// Item isn't a prop name here, and no values are specified 
_.zipObject(['SpeciesName', 'Species', item]) 

, 당신이 수도 생각 : -

+0

무엇을하고 계십니까? 'chain'과'zip'을 사용하는 것처럼 혼란 스럽습니다! 정교한 – Aravind

+0

동물을 종족 값으로 그룹화하려고합니다. 이온으로 종별로 나눌 수 있습니다. –

+0

데이터가 완전히 검색되었거나 '길이 === 0'이면 조건을 추가해야합니다. 그게 당신의 코드가 깨지는 이유 – Aravind

답변

2

내가 당신의 매핑 작업과 놀이의 조금 했어 나는 문제가 Lodash 워드 프로세서보고 후이 호출을 것 같아요 당신이 찾고있는 데이터를 얻을 :

이 당신이 질문에 출력을 지정하지 않은으로 찾고있는 데이터 인 경우
_.chain(data) 
    .groupBy('Species') 
    .toPairs() 
    .map(item => _.zipObject(['SpeciesName', 'Species'], item)) 
    .value(); 

확실하지 -이 아니라면, 그래서 원하는 출력을 지정하세요 우리는 더 멀리 도울 수 있습니다.