我将尝试将一个对象数组进行转换,它看起来像这样:
var allApps = [
{
title: "amazon",
summary: "lorem ipsum"
},
{
title: "facebook",
summary: "lorem ipsum"
},
{
title: "twitter",
summary: "lorem ipsum"
},
{
title: "flipp",
summary: "lorem ipsum"
}
]
将其转化为类似于这样的形式:
var titles= {
A: [
{
title: "amazon",
summary: "lorem ipsum"
}
],
F: [
{
title: "facebook",
summary: "lorem ipsum"
},
{
title: "flipp",
summary: "lorem ipsum"
}
],
T: [
{
title: "twitter",
summary: "lorem ipsum"
}
]
}
到目前为止,我已经有了这个:
var letters = [];
var titles = [];
for (var i = 0; i < allApps.length; i++) {
title = allApps[i].title;
if (title=="") {
continue;
}
var firstLetter = title.substring(0,1);
var arrayWithFirstLetter = titles[firstLetter];
if (arrayWithFirstLetter == null) {
titles[firstLetter] = [];
letters.push(firstLetter);
};
}
我希望根据应用程序的标题属性对其进行排序,并将它们推入与相应字母对应的数组中。
目前,我的代码提取每个标题的第一个字母,并为每个字母创建一个数组的数组。
title: Twitter
和title: Twitch
,你会遇到问题吗? - Scott Marcustitle
键的第一个字母创建键 (A
,F
,T
)。你需要的输出结果应该是一个对象(你当前的输出是一个数组),但在对象中不能有重复的键。 - Scott MarcusA
,B
,C
,... - 就像现在F
的facebook
和flipp
一样。 - Andreas