我无法迭代 javascript 数组

pen*_*enu 2 javascript

我在这里疯了,我有一个如下所示的关联数组,它是在页面加载完成后定义的。然而Array.forEach又回来了undefined,我不知道为什么。该数组肯定是在循环期间填充的。谁能给我任何想法吗?也不适用于 JQuery$.each

在此输入图像描述

xlm*_*xlm 7

数组通常是索引从 0 到 2 32 \xe2\x88\x92 2 之间的整数)到value的映射。在您的情况下,您已将数组视为字典,例如key (string) 到value

\n

您可能已经做过这样的事情:

\n
members = new Array();\nmembers[\'animerox1213\'] = \'Ashima\';\n
Run Code Online (Sandbox Code Playgroud)\n

JavaScript 允许这样做,毕竟它仍然是一个对象:

\n
typeof members === \'object\'\n
Run Code Online (Sandbox Code Playgroud)\n

但您实际上并没有向数组添加值,而是在名为 的对象上设置了一个非数字属性animerox1213。这不是数组应该如何使用的,我们可以通过检查大小来观察这一点:

\n
members.length === 0;\n
Run Code Online (Sandbox Code Playgroud)\n

因此,forEach执行任何操作,因为它认为它是一个空数组。

\n

也就是说,它可以用for\xe2\x80\xa6in枚举,因为它仍然只是一个对象(具有可枚举属性):

\n
for (m in members) {\n  console.log(m, members[m]);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

考虑仅使用一个对象,例如members = {}Map特别注意对象与地图部分

\n