当前位置: 首页 > 知识库问答 >
问题:

在不同的浏览器中迭代对象属性会产生不同的结果[重复]

邵飞宇
2023-03-14

我在JavaScript中创建一个非常基本的对象,并循环通过其属性,显示属性名称:

var name = {
                'A': 'DataA',
                'B': 'DataB',
                'C': 'DataC',
                'D': 'DataD',
                'E': 'DataE'
            }

for (var propName in name) {
    document.getElementById('result').innerHTML += propName + ' '
}

在IE和FireFox中,它会产生预期的结果:

A B C D E 

但在Chrome中,同样的代码会产生

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

知道为什么吗?关键词name在Chrome中是否具有某种意义?

共有2个答案

孙经艺
2023-03-14

试试看

for (var propName in name) {
    document.getElementById('result').innerHTML += (propName + ' ');
}
锺离晗昱
2023-03-14

Chrome似乎不喜欢将其用作全局变量(window对象上还有一个name属性)。只需在函数中运行它。

 类似资料:
  • 这是代码: 如果我在我的机器()或这里()上尝试: 相反,这里(): 这是不同的。这是由于机器厄普西隆?还是编译器精度标志?还是不同的评估? 造成这种漂移的原因是什么?问题似乎出现在函数中(因为其他值似乎相同)。

  • 我有相同的图像和相同大小的画布,但是输出是不同的。我想要同样的输出,该怎么做呢?

  • 为什么用于取消引用传递给printf的指针的类型会影响输出,即使类型大小相同: 输出: 我希望最后两行都正确打印0x3ff0000000000000,即IEEE754双浮点中1.0的表示形式。

  • 问题内容: 在IE7,IE8和Firefox上设置属性并返回不同的值: IE 8: IE 7: 火狐: 为什么存在这种差异? 在不使用jQuery的情况下,是否存在跨不同浏览器(IE8,IE7,Firefox)一致的等效属性? 问题答案: 这与浏览器的盒子模型有关。使用jQuery或其他JavaScript抽象库之类的东西来规范DOM模型。

  • 问题内容: 假设我有类似的课程: 我想在A上过滤标准,在不同的子类属性上过滤两个过滤器,例如: 我想要做的是使用“或”子句将criteriaB和criteriaC组合在一起,例如: 我该怎么做?我在这里对API稍作绊脚石。 问题答案: 使用别名代替嵌套条件:

  • 如何迭代对象及其子对象的属性?我在中使用了,但无法获取歌曲信息:/