版本

no-sparse-arrays

禁止稀疏数组

推荐

配置文件中使用来自 @eslint/jsrecommended 配置将启用此规则。

稀疏数组包含空槽,最常见的原因是在数组字面量中使用了多个逗号,例如

var items = [,,];

虽然此示例中的 items 数组的 length 为 2,但实际上 items[0]items[1] 中没有任何值。数组字面量仅在内部使用逗号的情况下仍然有效,再加上 length 已设置且实际项目值未设置,这使得稀疏数组对许多开发人员来说令人困惑。请考虑以下情况

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

在此示例中,colors 数组的 length 为 3。但是,开发人员是否打算在数组中间留出一个空位?还是打错了?

以这种方式定义的稀疏数组周围的混淆足以建议避免使用它们,除非您确定它们在您的代码中很有用。

规则详情

此规则禁止稀疏数组字面量,这些字面量存在“空洞”,即逗号前没有元素。它不适用于最后一个元素后面的尾随逗号。

此规则的错误代码示例

在 Playground 中打开
/*eslint no-sparse-arrays: "error"*/

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

此规则的正确代码示例

在 Playground 中打开
/*eslint no-sparse-arrays: "error"*/

var items = [];
var items = new Array(23);

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

何时不使用它

如果您想使用稀疏数组,则可以安全地禁用此规则。

版本

此规则是在 ESLint v0.4.0 中引入的。

进一步阅读

资源

更改语言