Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chrome中的Javascript不返回与Internet Explorer相同的数组长度_Javascript_Arrays_Google Chrome_Internet Explorer - Fatal编程技术网

Chrome中的Javascript不返回与Internet Explorer相同的数组长度

Chrome中的Javascript不返回与Internet Explorer相同的数组长度,javascript,arrays,google-chrome,internet-explorer,Javascript,Arrays,Google Chrome,Internet Explorer,我试图定义一个对象数组,以后可以根据数组的长度属性循环使用该数组。在InternetExplorer中,它可以像我预期的那样工作,但在Chrome中却不行。下面是定义对象数组的代码片段: var status = [ { name: 'Open', target: [ { systemgenerated: 'false', internalonly: '

我试图定义一个对象数组,以后可以根据数组的长度属性循环使用该数组。在InternetExplorer中,它可以像我预期的那样工作,但在Chrome中却不行。下面是定义对象数组的代码片段:

var status =
[
    {
        name: 'Open',
        target:
        [
            {
                systemgenerated: 'false',
                internalonly: 'true',
                name: 'Closed'
            },
            {
                systemgenerated: 'true',
                internalonly: 'true',
                name: 'Done'
            }
        ]
    },
    {
        name: 'Pending',
        target:
        [
            {
                systemgenerated: 'false',
                internalonly: 'true',
                name: 'Closed'
            },
            {
                systemgenerated: 'false',
                internalonly: 'true',
                name: 'Open'
            }
        ]
    }
];
在Internet Explorer中,status.length返回2。在Chrome中,它返回31。根据我在Stack上看到的示例,我尝试了几种不同的方法来定义对象,使其像Chrome中的数组一样工作,但没有取得任何进展。在Chrome中有没有一种方式可以定义这个,就像我期望的数组一样

谢谢

非常奇怪!显然,在HTML5中是一个保留字,它改变了状态栏的文本(所以它必须是字符串)

var status=[]将覆盖
窗口。如果它不在函数中,则状态
。在这种情况下,chrome会将其转换为字符串,这就是为什么会出现错误

更改变量名,或将所有内容包装到函数中以创建隔离作用域

var status=[{},{}];
console.log(状态);//Chrome中的“[对象],[对象]”
console.log(status.length);//31在Chrome中
非常奇怪!显然,在HTML5中是一个保留字,它改变了状态栏的文本(所以它必须是字符串)

var status=[]将覆盖
窗口。如果它不在函数中,则状态
。在这种情况下,chrome会将其转换为字符串,这就是为什么会出现错误

更改变量名,或将所有内容包装到函数中以创建隔离作用域

var status=[{},{}];
console.log(状态);//Chrome中的“[对象],[对象]”

console.log(status.length);//31英寸铬合金
Chrome。奇怪的是,我可以用同样的代码在Chrome中复制这个问题,在Chrome中显示31,在IE-@NagaSaiA中显示2,这是因为JSFIDLE将代码包装在一个窗口中。默认情况下为onload,但codepen只将其放在主体的末尾,而不是任何函数的内部。这意味着在codepen中,该变量位于window对象上,从那里可以查看cdrini的答案,看看接下来会发生什么=PChrome。奇怪的是,我可以用同样的代码在Chrome中复制这个问题,在Chrome中显示31,在IE-@NagaSaiA中显示2,这是因为JSFIDLE将代码包装在一个窗口中。默认情况下为onload,但codepen只将其放在主体的末尾,而不是任何函数的内部。在codepen中,这个变量位于窗口对象上,从那里你可以看到cdrini的答案,看看接下来会发生什么=P,它看起来像chrome在右边:“出于历史原因,窗口对象上的status属性在获取时必须返回它设置为的最后一个字符串”非常感谢!我在转圈,试图找出什么是错误的….,看起来chrome是正确的:“出于历史原因,Window对象上的status属性必须在获取时返回设置为“非常感谢”的最后一个字符串!我在兜圈子,想弄清楚到底出了什么问题。。