我在F12开发工具下的Internet Explorer 9.0上遇到此错误,在以下语句中:
arr = [];
for (i = 0; i < items.length; i ++) {
console.log(items[i]);
arr.push(items[i].join(','));
}
此方法适用于除IE之外的所有浏览器。为什么不起作用?
答案 0 :(得分:4)
这是我的猜测(因为我们缺少信息)。
它可能是以下各项的组合:
您正在IE8中进行测试,或者如果您使用的是IE9,那么您处于Quirks模式
构建数组时,您添加了一个尾随,
在Quirks模式下,或在IE8及更低版本中,如果在Array文字语法中包含一个尾随逗号,它将(错误地)在数组末尾添加一个额外的项目。
这表示您的上一个项目为undefined
,使用.join()
时会出现错误。
在IE8及更低版本或Quirks模式下的任何版本中,您将获得以下内容:
var items = [
["foo"],
["bar"],
["baz"], // <-- trailing comma
];
alert(items.length); // 4 (should be 3)
答案 1 :(得分:0)
通过将arr = []更改为var arr = [];
来解决此问题答案 2 :(得分:0)
不是一个答案,但会帮助我......
我以为我使用join方法作为Array类型的静态方法(可能背叛了我的C#历史),如下所示:
var s = Array.join(myArray,&#34;,&#34;);
并且毫不奇怪我无法找到使用该语法的其他人。 令人惊讶的是它在Firefox中有效。在IE浏览器中没有,这就是我在这里的原因。
改为更传统的
var s = myArray.join(&#34;,&#34;);
修好了!