Javascript 从数组中删除项目,对项目重新排序,然后将其放回(reactjs)

Javascript 从数组中删除项目,对项目重新排序,然后将其放回(reactjs),javascript,arrays,reactjs,Javascript,Arrays,Reactjs,这是我的密码: reorder=(dragItemId、startIndex、endIndex)=>{ //在this.state.feladatok中查找元素,该元素具有与我通过reorder传递的id相同的id const dragElem=this.state.feladatok.find(elem=>dragItemId==elem.id); //查找与dragElem具有相同szid的所有元素, //然后对它们进行排序。列表是一个数组,是这个.state.feladatok的一部分

这是我的密码:

reorder=(dragItemId、startIndex、endIndex)=>{
//在this.state.feladatok中查找元素,该元素具有与我通过reorder传递的id相同的id
const dragElem=this.state.feladatok.find(elem=>dragItemId==elem.id);
//查找与dragElem具有相同szid的所有元素,
//然后对它们进行排序。列表是一个数组,是这个.state.feladatok的一部分
const lista=this.state.feladatok.filter(listaelem=>listaelem.szid==dragElem.szid).sort((a,b)=>a.rang-b.rang);
//我需要把lista从这个.state.feladatok中删除
常量[移除]=列表拼接(起始索引,1);
lista.splice(endIndex,0,已删除)
//现在我需要把它放回去
取('http://localhost:3001/rangvalt', {
方法:'放',
标题:{'Content-Type':'application/json'},
正文:JSON.stringify({
莉斯塔:莉斯塔
})
})
.then(res=>res.json())
.then(ujlista=>this.setState({feladatok:ujlista}))
//因为等待这个响应太慢了
.catch(err=>console.log(err));

}
这是将元素添加到
endIndex
的方式。除非我误解了这个问题,否则您不需要
startIndex

const dragElem = this.state.feladatok.find(elem => dragItemId === elem.id);
// Remove dragElem from array
const lista = this.state.feladatok.filter(listaelem => listaelem.szid === dragElem.szid).sort((a, b) => a.rang - b.rang);

// Insert dragElem into lista at index endIndex
const newLista = [...lista.slice(0, endIndex), dragElem, ...lista.slice(endIndex)];
this.setState({feladatok: newLista});

你能澄清你的问题吗。。。您只是在问如何从组件状态中的数组中删除项吗?react和server的事情并不重要。如果我将状态分配给一个变量,然后从中删除
lista
,重新排序,然后将状态设置为连接
lista
,以及从中删除
lista
的数组,那么就完成了所有操作。我只是想知道正确的JS方法。我已经将元素从startindex移动到endindex。很难解释发生了什么。我正在处理这个.state.feladatok数组的对象。首先,我找到一个元素,然后在this.state.feladatok中找到元素,它具有类似的属性。这是名为
lista
的数组。在
列表a中
我对项目重新排序。它起作用了。但是我想从this.state.feladatok数组中删除整个
lista
,然后将
lista
放回this.state.feladatok数组。