sindresorhus/eslint-plugin-unicorn
Rule proposal: Forbid `.splice(index, 1, element)` and `.splice(-1, 0, element)`
クローズ
#2,765 opened on 2025/09/25
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.