在Javascript中迭代由字符串索引的数组

iterating an array indexed by strings in Javascript

本文关键字:索引 数组 字符串 Javascript 迭代      更新时间:2023-09-26

我有一个数组,其中我使用字符串作为数组的索引。假设我有:

var array = [];
array["a"] = 1;
array["b"] = 2;
array["c"] = 33;

我如何在"数组"中迭代以显示其所有元素?

JS中的数组只能有有序的数字键,但是对象可以有字符串作为键。由于键不是有序的,因此不能迭代它们本身,但可以显示所有元素:

var obj = {};
obj['a'] = 1;
obj['b'] = 2;
/* alternatively */ var obj = {'a': 1, 'b': 2};
for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
        //access via `obj[key]`
    }
}

带有字符串索引的"数组"在JS中根本不是数组,而是带有属性的对象。你想要的:

var obj = {
  a:1,
  b:2,
  c:33
};

for (var prop in obj){
  //this iterates over the properties of obj, 
  //and you can then access the values with obj[prop]
  if (obj.hasOwnProperty(prop)) {
    doSomething(obj[prop]);
  }
}

数组只有可以解析为整数的索引