Javascript 无法将特定索引处的新项插入数组
我试图在数组中的特定索引处插入一个新项 我有以下代码: 常量插入=索引:编号,…元素:QC[]=>{ 常数arrCopy=[…qt] 返回arrCopy.stipleindex,0,…元素 } 常数newQC:QC[]=[ { id:cuid, 顺序:qt.length+1, } ] 问题索引!==未定义&& setQtqt=>{ 返回InsertaQuestionindex,…newQC } 这样做的目的是从setQt返回的数组中删除所有内容 setQt是一个useState函数,因此它必须返回一个新状态Javascript 无法将特定索引处的新项插入数组,javascript,arrays,reactjs,typescript,ecmascript-6,Javascript,Arrays,Reactjs,Typescript,Ecmascript 6,我试图在数组中的特定索引处插入一个新项 我有以下代码: 常量插入=索引:编号,…元素:QC[]=>{ 常数arrCopy=[…qt] 返回arrCopy.stipleindex,0,…元素 } 常数newQC:QC[]=[ { id:cuid, 顺序:qt.length+1, } ] 问题索引!==未定义&& setQtqt=>{ 返回InsertaQuestionindex,…newQC } 这样做的目的是从setQt返回的数组中删除所有内容 setQt是一个useState函数,因此它必须返
我的代码可能有什么问题?Splice返回已删除的项目在您的情况下,您有0个已删除的项目作为第二个参数,因此它返回一个空数组。我想,你需要这样的东西
const insertAt = (index: number, ...element: QC[]) => {
const arrCopy = [...qt];
arrCopy.splice(index, 0, ...element);
return arrCopy;
}
Splice返回已删除的项目在您的情况下,您有0个已删除的项目作为第二个参数,因此它返回一个空数组。我想,你需要这样的东西
const insertAt = (index: number, ...element: QC[]) => {
const arrCopy = [...qt];
arrCopy.splice(index, 0, ...element);
return arrCopy;
}
您可以直接使用扩展语法插入:
return [...qt.slice(0, index), ...element, ...qt.slice(index)];
您可以直接使用扩展语法插入:
return [...qt.slice(0, index), ...element, ...qt.slice(index)];
这是因为javascript splice函数修改数组,但返回一个已删除元素的数组。在您的例子中,是一个空数组
您可以在以下链接中检查它:这是因为javascript拼接函数修改了数组,但返回了一个删除了元素的数组。在您的例子中,是一个空数组 您可以在以下链接中进行检查: