sindresorhus/eslint-plugin-unicorn

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

Open

#2,765 创建于 2025年9月25日

在 GitHub 查看
 (2 评论) (5 反应) (0 负责人)JavaScript (5,022 star) (468 fork)user submission
help wantednew rule

描述

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.

贡献者指南