版本

no-sparse-arrays

不允許稀疏陣列

建議

設定檔中使用來自@eslint/jsrecommended設定,即可啟用此規則

稀疏陣列包含空插槽,最常見的原因是在陣列字面值中使用了多個逗號,例如

const items = [,,];

雖然此範例中的 items 陣列長度為 2,但實際上 items[0]items[1] 中沒有值。僅包含逗號的陣列字面值是有效的,加上設定了 length 但未設定實際項目值的事實,使得稀疏陣列對許多開發人員來說感到困惑。考慮以下範例

const colors = [ "red",, "blue" ];

在此範例中,colors 陣列的長度為 3。但開發人員是否打算在陣列中間有一個空位?還是只是打錯字?

以這種方式定義的稀疏陣列造成的混淆足以建議避免使用它們,除非您確定它們在您的程式碼中很有用。

規則詳情

此規則不允許具有「空洞」的稀疏陣列字面值,其中逗號前面沒有元素。它不適用於最後一個元素後面的尾隨逗號。

錯誤程式碼範例(此規則)

在 Playground 中開啟
/*eslint no-sparse-arrays: "error"*/

const items = [,];
const colors = [ "red",, "blue" ];

正確程式碼範例(此規則)

在 Playground 中開啟
/*eslint no-sparse-arrays: "error"*/

const items = [];
const arr = new Array(23);

// trailing comma (after the last element) is not a problem
const colors = [ "red", "blue", ];

何時不該使用它

如果您想使用稀疏陣列,那麼停用此規則是安全的。

版本

此規則在 ESLint v0.4.0 中引入。

延伸閱讀

資源

變更語言