我有一个对象的json数组,如下所示:{id:'the id', name:'the name'};,我需要遍历该数组,并按其name属性按字母顺序对每个对象进行分组。有没有一种方法,而不必使用带有每个字母的switch / if语句?

我不想做的是这样的:

if(data[i].name..slice(0, 1) == 'a') {
   ...
}


它是一个大型数组,其中包含近1,000个对象。我的目标是最终将他们添加到潜水中,所以看起来像这样:

4


4品脱
4块饼干


一种


苹果
亚历克斯
亚当





鲍勃
比利

最佳答案

您可以这样浏览您的收藏集:

var groupedCollection = {};
for(...){//loop throug collection
    var firstLetter = data[i].charAt(0);
    if(groupedCollection[firstLetter] == undefined){
        groupedCollection[firstLetter] = [];
    }
    groupedCollection[firstLetter].push(data[i]);
}
//groupedCollection now contait data in the form of {a: [], b:[], etc...}

07-23 17:27