我有以下功能:
const deleteButtonHandler = (blockKey) => {
let array = [...blocks]
array.splice(blockKey, 1);
};
我只想移除数组中BlockKey
处的单个元素。 但是,当我检查控制台日志时,例如,如果我在一个大小为10
的数组中有索引4
,它会删除元素4和之后的所有数组。 我在这里做错了什么?
您可能希望执行类似的操作,同时传递数组和键。
const deleteButtonHandler = (array, blockKey) => {
array.splice(blockKey, 1);
};
但是如果您要这样做,那么您可以首先使用array.splice来代替。
BlockKey的值类型是什么?
它必须是要删除的元素的位置。 假设数组中的对象具有某个唯一标识符,您可以使用findindex
:
const blockKeyIndex = blocks.findIndex( block => block.uniqueId === blockKey);
然后您可以使用如下代码:
array.splice( blockKeyIndex, 1 );