sindresorhus/eslint-plugin-unicorn

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

クローズ

#2,765 opened on 2025/09/25

 (2 件のコメント) (5 件のリアクション) (0 人の担当者)JavaScript (468 件のフォーク)user submission
help wantednew rule

Repository metrics

Stars
 (5,022 個のスター)
PR merge metrics
 (平均マージ 4h 30m) (30d で 26 merged PRs)

説明

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.

コントリビューターガイド