我的Internet Explorer 9.0遇到這個錯誤在F12開發工具,在下面的語句:SCRIPT438:對象不支持屬性或方法「加入」
arr = [];
for (i = 0; i < items.length; i ++) {
console.log(items[i]);
arr.push(items[i].join(','));
}
這種方法在除IE瀏覽器的每個工作。爲什麼它不工作?
我的Internet Explorer 9.0遇到這個錯誤在F12開發工具,在下面的語句:SCRIPT438:對象不支持屬性或方法「加入」
arr = [];
for (i = 0; i < items.length; i ++) {
console.log(items[i]);
arr.push(items[i].join(','));
}
這種方法在除IE瀏覽器的每個工作。爲什麼它不工作?
這是我的猜測(因爲我們缺乏信息)。
它可能是以下組合:
你在IE8測試,或當你構建的,如果你正在使用IE9,你的怪癖模式
是數組,你提供一個尾隨,
怪癖模式,或在IE8和更低的,如果您在數組文本語法後面的逗號,它會(錯誤地)在數組的末尾添加一個額外的項目。
這意味着您的最後一個項目將是undefined
,當您使用.join()
時,您將收到錯誤消息。
在IE8和更低的,或Quirks模式任何版本,你會得到如下:
var items = [
["foo"],
["bar"],
["baz"], // <-- trailing comma
];
alert(items.length); // 4 (should be 3)
這個問題是通過改變編曲解決= []爲VAR ARR = [];
不太一個答案,但會幫助我......
我想我是用如下的連接方法數組類型的靜態方法(這可能背叛我的C#史):
var s = Array.join(myArray,「,」);
毫不奇怪,我找不到使用該語法的其他人。 令人驚訝的是,它在Firefox中起作用。沒有在IE中,這是什麼讓我在這裏。
更改爲更常規的
變種S = myArray.join( 「」);
修好了!
您的「項目」之一不是數組。 – Pointy
是物品[我]是一個數組?在循環中添加一條調試線。 '的console.log(項[I]); arr.push(items [i] .join(','));' – epascarello
由於您的開發人員工具處於打開狀態,因此當您記錄要循環的數組中的每個項目時,發現了什麼? –