提问者:小点点

数组拼接正在删除索引后的所有元素


我有以下功能:

 const deleteButtonHandler = (blockKey) => {
     let array = [...blocks]
     array.splice(blockKey, 1);
 };

我只想移除数组中BlockKey处的单个元素。 但是,当我检查控制台日志时,例如,如果我在一个大小为10的数组中有索引4,它会删除元素4和之后的所有数组。 我在这里做错了什么?


共2个答案

匿名用户

您可能希望执行类似的操作,同时传递数组和键。

const deleteButtonHandler = (array, blockKey) => {
     array.splice(blockKey, 1);
 };

但是如果您要这样做,那么您可以首先使用array.splice来代替。

匿名用户

BlockKey的值类型是什么?

它必须是要删除的元素的位置。 假设数组中的对象具有某个唯一标识符,您可以使用findindex:

const blockKeyIndex = blocks.findIndex( block => block.uniqueId === blockKey);

然后您可以使用如下代码:

array.splice( blockKeyIndex, 1 );