javascript - 数组类型被拾取为数组值

标签 javascript arrays tridion tridion-2011

我有一些简单的 Javascript 循环遍历项目数组(Tridion 用户组)以检查用户是否是特定组的成员。

我可以轻松地围绕下面显示的问题进行编码(参见 && extensionGroup !== 'true'),但我想了解为什么 isArray = true 被算作数组中的一个 - 有什么想法吗?

下面的屏幕截图表明值 extensionGroups 已被设置

var extensionGroups = ["NotEvenARealGroup", "Author", "ExampleGroupAfterOneUserIsActuallyIn"]; 

但返回 isArray 值作为第 4 个值?

已更新以更清晰地显示图像

Firebug - objects

Firebug - code

最佳答案

您正在使用 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/

相关文章:

javascript - HTML5 'required' 表单重置时留下无效的伪类

ruby - 如何计算 Ruby 中数组中数组的数量?

64 位应用程序池中的 Tridion 2011

tridion - 从工作流程发布页面

javascript - 使用 React 将轨道添加/删除到播放列表

javascript - application.haml 和 application.html.haml 之间的区别?

javascript - Google Charts - 仪表板 ComboChart 不堆叠条形图

java - 计算字符串中字符的频率(Java,性能)

python - 在创建二维数组/列表时遇到问题

tridion - 我应该如何使用关键字元数据?