我有一个包含项目的数组,我想根据第一个字母对它们进行分组,但是当我将项目推送到数组时,它显示空的“Array[0]”,而其中显然有项目。
显然我做错了什么,但我不知道是什么。
var group = [];
var alphabetArray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
alphabetArray.forEach(function(letter) {
group[letter] = group[letter] || [];
group[letter].push({
key: letter,
letter
});
});
console.log(group);
最佳答案
数组旨在保存由整数属性名称表示的有序数据集。
您分配的属性名称是字母。
数组并非旨在保存此类数据,并且 console.log
不会显示数组的这些属性。
不要使用数组。使用一个物体。对象被设计为保存具有任意属性名称的无序数据。如果顺序很重要,那么您可能需要使用 Map相反。
关于Javascript数组不创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41519680/