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.

貢獻者指南

Rule proposal: Forbid `.splice(index, 1, element)` and `.splice(-1, 0, element)` · sindresorhus/eslint-plugin-unicorn#2765 | Good First Issue