我的数组如下所示:
var permissions = new Array();
permissions['role-1'] = new Array();
permissions['role-1']['permission-1'] = "perm1";
permissions['role-1']['permission-3'] = "perm3";
permissions['role-1']['permission-5'] = "perm5";
permissions['role-2']['permission-1'] = "perm1";
permissions['role-2']['permission-5'] = "perm5";
我如何循环遍历这样的数组并遍历所有元素?我不能使用 for 循环,因为它会使用整数索引。
最佳答案
您将数组(最适合整数索引属性)与对象(旨在使用任何有效字符串作为属性名称)混淆了。对象有时被称为“关联数组”,这使得区别有点令人困惑。
您应该使用对象文字简写来初始化 permissions
变量,而不是使用 new Array()
。然后,您可以使用 Object.keys
获取用于创建对象的键列表,并使用键值对执行某些操作:
var permissions = {
'role-1': {
'permission-1': 'perm1',
'permission-3': 'perm3',
'permission-4': 'perm1',
'permission-5': 'perm5',
},
'role-2': {
'permission-1': 'perm1',
'permission-5': 'perm5'
}
}
var object = permissions['role-1']
Object.keys(object).forEach(function (key) {
// Do something with your key-value pairs
console.log(key, this[key])
}, object)
有关详细信息,请参阅 "How do I loop through or enumerate a JavaScript object?"
关于javascript - 如果我不知道索引,如何循环遍历二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42822227/