对象数组长度在JavaScript中返回undefined

时间:2016-05-28 12:43:34

标签: javascript arrays

我在控制台中有一个如下所示的数组。

console.log(roles);

User {0: "AdminUser", 1: "AuthenticatedUser"}

虽然它是一个数组但我无法获得数组长度。

console.log(roles.length);

undefined

但是如果使用索引访问数组,我可以得到如下所示的值。

console.log(roles[0]);

AdminUser

2 个答案:

答案 0 :(得分:0)

它不是一个数组,显然是一个对象。

您可以使用类似数组的表示法访问它的原因是JS支持方括号访问表示法。 由于你有数字作为键,它可能有点误导。

答案 1 :(得分:0)

感谢Pietro,在了解了Object.keys()后,我通过Google找到了解决方案。

Object.keys(roles).forEach(function(key) {
    console.log(key + ': ' + roles[key]);
});

对于那些投票的人来说,这是我今天学到的关于Object.keys()的新事物。感谢您通过投票表决获得的鼓励。 :)