0

我以为我使用这里建议的 for (var key in arr) 解决了我的问题,但这会在 IE 中引起麻烦。现在我回到第一方。

var myVariable = [];

myVariable['option-1'] = 'something';
myVariable['option-2'] = 'something else';
$.each(myVariable, function(index, value) {
  alert(index + ': ' + value);
});

它不起作用。什么都没有显示。有人可以编辑它以使其工作吗?

4

5 回答 5

4

只需使用对象而不是数组:

var myVariable = {};
于 2013-05-01T20:17:41.557 回答
3

更改var myVariable = [];var myVariable = {};

您使用的语法myVariable['option-1'] = 'something';适用于对象,而不是数组。

于 2013-05-01T20:17:57.113 回答
2

myVariable是一个数组。要将事物添加到您使用的数组myVariable.push('something')中。您正在使用方括号语法,这是您通常向对象添加属性的方式。

由于数组是对象,您仍然可以访问option-1,但它不是数组的成员,它是对象的属性:myVariable['option-1']; // "something"

解决方案是设置myVariable一个对象。jQuery 的each方法将按预期遍历对象的属性。

于 2013-05-01T20:17:58.253 回答
1

不需要 jQuery。
只需使用for..in循环(对象{}不是数组[]):

for(var index in myVariable) {
   var value = myVariable[index];
   alert(index + ': ' + value);
}
于 2013-05-01T20:17:20.117 回答
1

JavaScript 中没有关联数组,数组上的非数字属性是不好的做法!.

相反,使用对象文字:

var myVariable = {};
//               ^^

myVariable['option-1'] = 'something';
…
于 2013-05-01T20:20:58.637 回答