从数组中删除一个元素并更新顺序

kvvprof

我在该州有一组对象。该对象具有 order 属性。我需要用于拖放的订单道具。该列表按顺序排序。此外,还有一个从列表中删除项目的功能。如何通过更新 order 属性正确地从数组中删除元素?

  const deleteTodo = (id) => {

    //I tried using map but it doesn't work

    setTodos(todos.map((todo, index) => {
      if (todo.id !== id) {
        return { ...todo, order: index + 1 } 
      }
      return todo
    }))

  }

/* for example:
[{title: 'apple', order: 1}, {title: 'banana', order: 2}, {title: 'pear', order: 3}] => delete banana => [{title: 'apple', order: 1}, {title: 'pear', order: 2}] */

我根据建议的选项编写了这个解决方案:

  const deleteTodo = (id) => {
    const newTodos = todos
      .filter(todo => todo.id !== id)
      .map((todo, index) => ({ ...todo, order: index + 1 }))
    setTodos(newTodos)
  }
切萨雷·波洛纳拉
  1. 过滤删除
  2. 映射以更改订单值

const items = [{
  title: 'apple',
  order: 1
}, {
  title: 'banana',
  order: 2
}, {
  title: 'pear',
  order: 3
}]
//Delete {title: 'banana', order: 2}
const newItems = items.filter(el => el.title !== "banana").map(el => el.order > 2 ? ({ ...el,
  order: el.order - 1
}) : el)

console.log(newItems)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

删除一个元素后数组索引不更新

如何从元素数组中删除一个元素

从android中的String数组中删除一个元素

如何删除bash中数组的最后一个元素?

从索引数组中删除一个元素 c#

如何从数组中完全删除一个元素?

Mongoose 从数组中删除一个元素

删除另一个数组中的元素

从数组中删除一个知道其索引的元素

如何按值从数组中删除一个元素

从数组中删除第一个元素

从数组中删除一个元素(RecoilJS)

删除Mongodb对象数组中的一个元素?

爆炸后如何从数组中删除一个元素

单击一个元素并将其从数组中删除

从数组中删除一个元素并替换为 0?

删除数组的一个元素

更新数组的最后一个元素?

删除数组中的第一个和最后一个元素

将一个数组的元素以相反的顺序存储到另一个数组中

如何从数组中删除元素,哪些元素是另一个数组?

根据另一个数组的空元素从数组中删除元素

从数组中删除第一个元素并返回减去第一个元素的数组

使用isSame函数从momnet的另一个数组元素中删除一个数组元素

MongoDB插入/更新/删除数组的元素,该数组是另一个数组的元素

以正确的顺序基于另一个列表从列表中删除元素

从列表中删除重复项:保留顺序和每个元素的最后一个重复项

从一个数组中删除另一个数组中的元素

基于Javascript中的另一个数组删除数组中的元素