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

RST*_*RST 0 javascript arrays jquery loops

我对PHP比对JQuery更熟悉,而且对数组有点困难.我已经阅读了关于这个主题的论坛上的所有帖子,但无法让它发挥作用.

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

myArr = ['option-4' => '3','option-1' => '8', 'option-3' => '0' ];
Run Code Online (Sandbox Code Playgroud)

在JQuery中,我可以使用该命令检索值

var x = myArr['option-1'];
Run Code Online (Sandbox Code Playgroud)

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

当我检查阵列的长度

alert("Elements in array "+myArr.length);
Run Code Online (Sandbox Code Playgroud)

它总是返回零.

当我尝试类似的东西

$.each(myArr , function(i, val) { 
  alert(myArr[i]); 
});
Run Code Online (Sandbox Code Playgroud)

没有任何表现.

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

ale*_*exn 5

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

var myArr = {'option-4': '3', 'option-1': '8', 'option-3': '0' };
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用for .. in迭代所有键:

for (var key in myArr) {
    alert(myArr[key]);
}
Run Code Online (Sandbox Code Playgroud)

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