0

配列のインデックスとして文字列を使用する配列があります。私が持っているとしましょう:

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

「配列」を繰り返し処理して、そのすべての要素を表示するにはどうすればよいですか?

4

2 に答える 2

5

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]`
    }
}
于 2013-03-11T01:18:22.583 に答える
3

文字列インデックスを持つ「配列」は、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]);
  }
}

配列には、整数として解析できるインデックスのみがあります。

于 2013-03-11T01:17:54.350 に答える