Javascript数组没有创建数组

时间:2017-01-07 09:01:35

标签: javascript arrays

我有一个包含项目的数组,我想根据第一个字母对它们进行分组,但是当我将项目推送到数组时,它显示为空"数组[0]"虽然里面有明显的物品。

显然我做错了什么,但我不知道是什么。



var group = [];
var alphabetArray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
alphabetArray.forEach(function(letter) {
  group[letter] = group[letter] || [];
  group[letter].push({
    key: letter,
    letter
  });
});
console.log(group);




3 个答案:

答案 0 :(得分:2)

数组用于保存由属性名称<整数表示的有序数据集

您正在指定字母的属性名称。

数组不是为了保存那种数据而设计的,console.log不会显示数组的这些属性。

不要使用数组。使用对象。对象旨在保存具有任意属性名称的无序数据。如果订单很重要,那么您可能希望改为使用Map

答案 1 :(得分:1)

您正在寻找创建对象而不是数组。将[]更改为{}

Array期望int作为索引,该对象可以采用字符串

var group = {}; // Object instead of Array
var alphabetArray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
alphabetArray.forEach(function(letter) {
  group[letter] = group[letter] || [];
  group[letter].push({
    key: letter,
    letter
  });
});
console.log(group);

答案 2 :(得分:0)

我想你想把每个字母转换成结构。我是这样,你需要Array.map

&#13;
&#13;
var alphabetArray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
var group = alphabetArray.map(function(letter) {
  return {
    [letter]: letter
  };
});
console.log(group);
&#13;
&#13;
&#13;