2017-05-21 16 views
0

私は種によってグループ化しようとしている動物のLodashのリストを持っています。最初に私はJSONをつかんでグルーピングを適用して、これをイオンリストのforループに送ります。グループ化がなければ、データはリストに読み込まれますが、グループ化を適用するとデータが未定義に戻ってしまいます。Lodash group by undefined

// 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:未定義スカンク、[オブジェクト オブジェクト]、[オブジェクトオブジェクト]:未定義

私はそれが返ってきているのを見ることができますが、奇妙な方法でですか?

+0

何をしているのですか? 'chain'と' zip'を使っていると混乱します!精巧なもの – Aravind

+0

私は種の値で動物をグループ化しようとしているので、それらをイオン種で分けることができます。 –

+0

データが完全に取得された場合は条件を追加する必要があり、「長さ=== 0」です。それでコードが壊れる理由 – Aravind

答えて

2

私はあなたのマッピング操作でプレイのビットを持っていた - 私は、問題がLodashのドキュメントを見た後にこの呼び出しかもしれないと思う:あなたは、次を使用

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

場合、私はあなたがかもしれないと思いますあなたが探しているデータを取得:

これは、あなたが問題のあなたの出力を指定しなかったとして探しているデータがある場合
_.chain(data) 
    .groupBy('Species') 
    .toPairs() 
    .map(item => _.zipObject(['SpeciesName', 'Species'], item)) 
    .value(); 

わからない - そうでない場合は、ので、あなたの所望の出力を指定してください私たちはさらに助けることができます。