数组显示零长度,每个()没有值

时间:2013-04-29 16:05:12

标签: javascript jquery arrays loops

我比使用JQuery更熟悉PHP,并且更加熟悉数组。我已经阅读了关于这个主题的论坛上的所有帖子,但无法让它发挥作用。

我有我相信的阵列。 在php中看起来像这样的东西

myArr = ['option-4' => '3','option-1' => '8', 'option-3' => '0' ];

在JQuery中,我可以使用命令

检索值
var x = myArr['option-1'];

这一切都很好,但我需要做的是创建一串值。所以我需要循环遍历元素并将元素的值添加到字符串中。问题是循环。

当我检查数组的长度时

alert("Elements in array "+myArr.length);

它总是返回零。

当我尝试类似

$.each(myArr , function(i, val) { 
  alert(myArr[i]); 
});

什么都没有显示。

我显然缺少一些东西,我的PHP知识必须阻止事情。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:5)

这不是一个有效的JavaScript数组。您想使用对象:

var myArr = {'option-4': '3', 'option-1': '8', 'option-3': '0' };

然后,您可以使用for .. in:

遍历所有键
for (var key in myArr) {
    alert(myArr[key]);
}

这相当于PHP中的关联数组。请注意,您需要使用显式键来访问元素,不能使用索引,例如myArr[0]

答案 1 :(得分:0)

如果你想使用jQuery:

$.each(myArr , function(key, val) { 
  alert(key + ": " + val); 
});