2013-08-21 38 views
1

我有這樣的代碼:爲什麼JSLint告訴我「使用數組文字符號[]」。

// ... 
    return Array.apply(null, new Array(length)).map(elementfn); 

而該行,JSLint告訴我

使用數組文字符號[]。

當我不知道設計時的長度時,如何使用文字表示法?

+4

似乎很好。我不久前放棄了JSLint。我建議JSHint,更具可配置性。 – elclanrs

+0

雖然JSLint在這個問題上顯然是錯誤的,但我不會稱之爲好的,可讀的代碼。如果你需要一個循環,爲什麼不使用循環? – georg

+0

@Bakudan:這不是重複的。我知道區別。例如,您可以爲構造函數提供一個長度,我正在這樣做。 – recursive

回答

0

在JavaScript中,構建數組時不需要輸入長度。他們會自動更改其大小。

+0

在上面提到的用例中,一個空數組不適用。對於一個空數組,使用'map()'方法的初始化將失敗。人們可以完全重寫代碼,但這不是問題的主題。 – Sirko

+0

當元素添加到它們時,它們只會改變它們的大小。在這種情況下,我有一個變量,包含我知道我想要的數組的長度。 – recursive

+2

你總是可以設置array.length = length – MrP

0

JSLint經過優化,可以使用最佳實踐並加速腳本。數組文字符號被視爲更快,因爲它沒有調用Array構造函數的開銷。這至少是我的承擔。

+0

不可能使用數組文字來表示未知長度的數組。 – recursive

相關問題