迭代和枚举对象中多个数组的键值对

克里斯·马佐奇

我的问题是关于以下功能:

function loadConfigurations(configs){
  console.log(configs);
}

loadConfigurations函数接收的“ configs”对象包含两个属性-两个数组,一个称为“ assigned”,另一个称为“ unssigned”。执行console.log(configs)输出以下内容:

"Object{assigned: Array[5], unassigned: Array[1]}"

现在,我想枚举“分配”数组和“未分配数组”中每个属性的键值对。

configs对象的结构如下:

抱歉,伙计们。这是configs对象的结构:

var configs = {
"config1":
        {
        "assigned": [
            {
                "name": "Admin Usersss",
                "value": "admin-user"
            },
            {
                "name": "MPR User",
                "value": "mpr-user"
            },
            {
                "name": "SAMHSA User",
                "value": "samhsa-user"
            }
         ],
        "unassigned": [
            {
                "name": "States User",
                "value": "states-user"
            },
            {
                "name": "All States User",
                "value": "all-states-user"
            },
            {
                "name": "Substance Abuse User",
                "value": "substance-abuse-user"
            }
         ]
        },
"config2":
        {
        "assigned": [
            {
                "name": "Admin User",
                "value": "admin-user"
            },
            {
                "name": "MPR User",
                "value": "mpr-user"
            },
            {
                "name": "SAMHSA User",
                "value": "samhsa-user"
            },
            {
                "name": "States User",
                "value": "states-user"
            },
            {
                "name": "All States User",
                "value": "all-states-user"
            }
        ],
        "unassigned": [
            {
                "name": "Substance Abuse User",
                "value": "substance-abuse-user"
            }
        ]
    },
    "config3":
    {
        "assigned": [
            {
                "name": "Admin User",
                "value": "admin-user"
            }
        ],
        "unassigned": [
            {
                "name": "States User",
                "value": "states-user"
            },
            {
                "name": "All States User",
                "value": "all-states-user"
            },
            {
                "name": "Substance Abuse User",
                "value": "substance-abuse-user"
            },
            {
                "name": "MPR User",
                "value": "mpr-user"
            },
            {
                "name": "SAMHSA User",
                "value": "samhsa-user"
            }
            ]
        }

我该怎么做呢?

谢谢,CM

罗里·麦克罗森(Rory McCrossan)

给定您发布的数据结构,您可以使用Object.keys()它枚举父对象的键,然后在其中的assignedunassigned属性上循环试试这个:

Object.keys(configs).forEach(function(key) {
    var config = configs[key];

    config.assigned.forEach(function(assigned) {
        console.log('A: ' + assigned.name + ', ' + assigned.value);
    });

    config.unassigned.forEach(function(assigned) {
        console.log('U: ' + assigned.name + ', ' + assigned.value);
    });
})

var configs = {
  "config1": {
    "assigned": [{
      "name": "Admin Usersss",
      "value": "admin-user"
    }, {
      "name": "MPR User",
      "value": "mpr-user"
    }, {
      "name": "SAMHSA User",
      "value": "samhsa-user"
    }],
    "unassigned": [{
      "name": "States User",
      "value": "states-user"
    }, {
      "name": "All States User",
      "value": "all-states-user"
    }, {
      "name": "Substance Abuse User",
      "value": "substance-abuse-user"
    }]
  },
  "config2": {
    "assigned": [{
      "name": "Admin User",
      "value": "admin-user"
    }, {
      "name": "MPR User",
      "value": "mpr-user"
    }, {
      "name": "SAMHSA User",
      "value": "samhsa-user"
    }, {
      "name": "States User",
      "value": "states-user"
    }, {
      "name": "All States User",
      "value": "all-states-user"
    }],
    "unassigned": [{
      "name": "Substance Abuse User",
      "value": "substance-abuse-user"
    }]
  },
  "config3": {
    "assigned": [{
      "name": "Admin User",
      "value": "admin-user"
    }],
    "unassigned": [{
      "name": "States User",
      "value": "states-user"
    }, {
      "name": "All States User",
      "value": "all-states-user"
    }, {
      "name": "Substance Abuse User",
      "value": "substance-abuse-user"
    }, {
      "name": "MPR User",
      "value": "mpr-user"
    }, {
      "name": "SAMHSA User",
      "value": "samhsa-user"
    }]
  }
}

Object.keys(configs).forEach(function(key) {
  var config = configs[key];
  config.assigned.forEach(function(assigned) {
    console.log(key + ' A: ' + assigned.name + ', ' + assigned.value);
  });
  config.unassigned.forEach(function(assigned) {
    console.log(key + ' U: ' + assigned.name + ', ' + assigned.value);
  });
})

还要注意的是(在评论尖的由@adeneo了你的问题),如果您正在执行两个相同的逻辑assignedunassigned项目,那么你可以再在一起,将它们串联和迭代他们。

如果属性之间的逻辑不同,则需要上述方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章