javascript - 如何使用 jQuery 或 JavaScript 循环数组?

标签 javascript jquery html 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},
        ]
    }
]

我想循环 key 3 次,在 key 循环内我想再次循环 key 内的每个元素。

首先我尝试了 $.each ,它对于键数组效果很好。在每个函数内部,我尝试在返回名称的循环内使用 Object.key(this) 获取键值

arr1, arr2, arr3

但是我无法循环遍历我得到的名字。

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

我不知道这是否是正确的做法,当我尝试这样做时,这是正确的。我收到一条错误消息,告知 .each 不是函数。

任何帮助将不胜感激。

最佳答案

实现此目的的简单方法是使用三个循环,但尝试在每个循环中使用 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);
    });
  });
});
    

当然,如果您实际上告诉我们您想通过这些循环完成什么,可能会有更好的解决方案。

关于javascript - 如何使用 jQuery 或 JavaScript 循环数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47292089/

相关文章:

javascript - 使用箭头键盘而不是鼠标时 ng-options 模型未更新

javascript - dgrid自定义排序问题

javascript - 如何检查 Promise 是否挂起

javascript - 从外部将值传递给 Angular 应用程序

jquery - 一个 jquery datepicker 插件,允许用户选择月份和年份

javascript - 从数据库中获取 SELECT 的下拉值而不是在 UI 上进行硬编码 (Angularjs)

javascript - react 应用程序错误 'Uncaught ReferenceError: React is not defined'

jquery - 如何在翻转时使用 jquery 更改单个图像的大小?

javascript - 只要包含相同的值,所有链接都将处于事件状态

javascript - HTML,是否可以从 "required"属性更改验证消息位置?