sindresorhus/eslint-plugin-unicorn

Rule proposal: Forbid `.splice(index, 1, element)` and `.splice(-1, 0, element)`

Open

Aperta il 25 set 2025

Vedi su GitHub
 (2 commenti) (5 reazioni) (0 assegnatari)JavaScript (5022 star) (468 fork)user submission
help wantednew rule

Descrizione

Description

They are hard to read and confusing.

Examples

// ❌
array.splice(-1, 1, element);
array.splice(array.length - 1, 1, element); // This can be ignored since `unicorn/prefer-negative-index` already fix it to the previous one.

// ✅
array[array.length - 1] = element;
// ❌
array.splice(10, 1, element);

// ✅
array[10] = element;
// ❌
array.splice(-1, 0, element);

// ✅
array.push(element);

Proposed rule name

no-confusing-array-splice

Additional Info

I'm not sure about the rule name.

Note: the replacements in examples are not safe to fix, since they behavior differently when the index is out of boundary, even the -1 case, since the array can be empty.

Guida contributor