javascript - 迭代嵌套关联数组

标签 javascript arrays

我正在尝试迭代嵌套关联数组。
每次迭代后,我还会得到一个 undefined 值:

testarr = [];

testarr["key1"] = [];
testarr["key2"] = [];

testarr["key1"].push("val1");
testarr["key1"].push("val2");
testarr["key1"].push("val3");

testarr["key2"].push("val4");
testarr["key2"].push("val5");
testarr["key2"].push("val6");

for (var key in testarr) {
  console.log("---" + key + "---")
  for (var key2 in key) {
    console.log(testarr[key][key2])
  }
}

输出:

---key1---
val1
val2
val3
undefined
---key2---
val4
val5
val6
undefined

它从哪里来?

最佳答案

在第二个 for 循环中,您正在迭代“key”(即索引),而不是“testarr[key]”。

for (var key in testarr) {
    console.log("---" + key + "---")
    for (var key2 in testarr[key]) {
        console.log(testarr[key][key2])
    }
}

关于javascript - 迭代嵌套关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36535332/

相关文章:

javascript - 如何根据键盘输入使圆圈消失?

c - 在 C 中初始化数组时出错

javascript - Grunt require 未能按预期创建多个模块

javascript - 了解代码以确定数字是否为奇数使用 ~~

python - 根据符号将数组中列的元素归一化为 1 或 -1

javascript - 需要基于现有对象在 Javascript 中创建对象,考虑到其性能,这是有效的

javascript - 在 jquery 中添加点击回调

javascript - 使用 phantom js 获取 css 值

javascript - 使用 jQuery 动态获取输入字段的值并使用 PHP 处理它们

c - 如何从 argv[] 中获取 memcpy()?