如何使用jQuery或JavaScript循环遍历数组?

Unk*_*ser 0 html javascript jquery json

我有一个像这样的json数组

var data = key: [
    {
        arr1: [
            {value: 1},
            {value: 2},
            {value: 3},
        ]
    },
    {
        arr2: [
            {value: 1},
            {value: 2},
            {value: 3},
        ]
    },
    {
        arr3: [
            {value: 1},
            {value: 2},
            {value: 3},
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

我想循环通过key3次,并且在键循环内部我想再次循环通过其中的每个元素key.

首先,我试过$.each哪个适用于键阵列.在每个函数内部,我试图Object.key(this)在循环中使用返回名称的键值来获取键值

arr1, arr2, arr3
Run Code Online (Sandbox Code Playgroud)

但是我无法遍历我得到的名字.

$.each(data, function(i, e) {
    Object.keys(this).each(function(index, element) {
        console.log(element);
    })    
})
Run Code Online (Sandbox Code Playgroud)

我不知道这是否是正确的做法,当我尝试这样做时.我得到一个错误告诉.each不是一个功能.

任何帮助都感激不尽.

JLR*_*she 8

执行此操作的简单方法是使用三个循环,但尝试使this每个循环中具有新含义的工作将不必要地复杂化.

我建议使用.forEach并给每个循环变量一个明确的名称:

var data =  [
    {
        arr1: [
            {value: 1},
            {value: 2},
            {value: 3},
        ]
    },
    {
        arr2: [
            {value: 1},
            {value: 2},
            {value: 3},
        ]
    },
    {
        arr3: [
            {value: 1},
            {value: 2},
            {value: 3},
        ]
    }
]

data.forEach(function (outerObj) {
  Object.keys(outerObj).forEach(function (key) {
    outerObj[key].forEach(function (item) {
      console.log(item);
    });
  });
});
    
Run Code Online (Sandbox Code Playgroud)

当然,如果你真的告诉我们你想用这些循环完成什么,可能会有更好的解决方案.