Eslint
规则 | Rules

no-sparse-arrays

不允许稀疏数组(无稀疏数组)

"extends": "eslint:recommended"配置文件中的属性启用此规则。

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

var items = [,,];

虽然items在这个例子中的数组有length2个,但实际上在items[0]或中没有值items[1]。事实上,数组文字只有逗号才有效,加上length被设置的和实际的项目值没有被设置,这使得稀疏数组对于许多开发者来说变得混乱。考虑以下:

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

在这个例子中,colors数组有length3个。但是开发人员是否打算在数组中间有一个空白点?还是它是一个错字?

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

规则细节

这条规则不允许稀疏数组文字,它们在逗号前没有元素的地方有“孔”。它不适用于最后一个元素之后的尾随逗号。

此规则的错误代码示例:

/*eslint no-sparse-arrays: "error"*/ var items = [,]; var colors = [ "red",, "blue" ];

此规则的正确代码示例:

/*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", ];

何时不使用它

如果你想使用稀疏数组,那么禁用这个规则是安全的。

Further Reading