Why is this an issue?
A sparse array is an array in which the elements do not occupy a contiguous range of indices. In other words, there are gaps (or "holes") between
the elements in the array, where some indices have no corresponding value assigned to them.
Including an extra comma in an array literal signifies an empty slot in the array, thus creating a sparse array. An empty slot is not the same as a
slot filled with the
undefined value. In some operations, empty slots behave as if they are filled with
undefined but are
skipped in others.
While this is a well-defined behavior, it can be misleading and raises suspicions about the original intent: an extra comma was intentionally
inserted, or perhaps the developer meant to insert the missing value but forgot.
let a = [1, , 3, 6, 9]; // Noncompliant: Extra comma maybe denoting an oversight
You should either remove the extra comma if this was a mistake or add the value you meant to insert initially.
let a = [1, 3, 6, 9];
Alternatively, if the additional comma was intended, this should be made explicit with an
let a = [1, undefined, 3, 6, 9];