我有一个Lodash动物名单,我试图按物种分组。首先,我抓住JSON,然后应用分组,然后在离子列表中的for循环中输入它。如果没有分组,数据会加载到列表中,但在应用分组时,我将数据恢复为未定义。
// 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}]
我怀疑问题可能出在映射上,因为我从数据控制台登录得到的回报是:
Object Species:undefined SpeciesName:undefined skunk,[object 对象],[对象对象]:未定义
所以我可以看到它正在回归它们,但是以一种奇怪的方式?
答案 0 :(得分: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();
不确定这是否是您要查找的数据,因为您没有在问题中指定输出 - 如果不是,请指定您想要的输出,以便我们进一步提供帮助。