我有一些简单的 Javascript 循环遍历项目数组(Tridion 用户组)以检查用户是否是特定组的成员。
我可以轻松地围绕下面显示的问题进行编码(参见 && extensionGroup !== 'true'
),但我想了解为什么 isArray
= true
被算作数组中的一个值 - 有什么想法吗?
下面的屏幕截图表明值 extensionGroups
已被设置
var extensionGroups = ["NotEvenARealGroup", "Author", "ExampleGroupAfterOneUserIsActuallyIn"];
但返回 isArray
值作为第 4 个值?
已更新以更清晰地显示图像
最佳答案
您正在使用 for in
来迭代一个数组;不要那样做。使用for
(或forEach
):
for(var i = 0; i < extensionGroups.length; i++) {
var extensionGroup = extensionGroups[i];
// ...
}
失败的原因是 for in
用于在 JavaScript 中迭代对象的属性。以这种方式遍历数组意味着您可以为它分配任何其他内容,例如此属性或 length
。
如果您能够使用Array#forEach
,那么这里可能是最合适的:
extensionGroups.forEach(function(extensionGroup) {
// ...
});
关于javascript - 数组类型被拾取为数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110772/