【问题标题】:How do I use express.js app.delete to remove a specific object from an array?如何使用 express.js app.delete 从数组中删除特定对象?
【发布时间】:2020-11-26 01:38:38
【问题描述】:

我正在使用 node 和 express 来设置服务器并执行 get、post、delete 等操作。但我无法弄清楚按 id 删除的方法。我知道如何获取特定的 id,但我不知道最后一部分。

这是我目前所拥有的。这正确地返回了 obj.id。

app.delete("/api/notes/:id", function(req, res) {
    console.log("req params", req.params.id)
    
  });

【问题讨论】:

  • 这些信息不足以回答问题。它是您要从中删除的普通数组吗?数组长什么样子?
  • 这里的整个问题真的只是“如何从数组中删除一个项目”吗?
  • 您如何存储数据?
  • findByIdAndDelete?

标签: javascript node.js express


【解决方案1】:

假设您的数组只是一个标准数组,从数组中删除项的最简单方法是使用 .filter() 返回数组的新副本,其中不包含您要删除的项。

app.delete("/api/notes/:id", function(req, res) {
    console.log("req params", req.params.id)
    myArray = myArray.filter(({ id }) => id !== req.params.id);
  });

否则,如果需要对现有数组进行变异(修改),可以使用.findIndex().splice() 代替。

app.delete("/api/notes/:id", function(req, res) {
    console.log("req params", req.params.id)
    const itemIndex = myArray.findIndex(({ id }) => id === req.params.id);
    if (itemIndex >= 0) {
      myArray.splice(itemIndex, 1);
    }
  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 2019-11-02
    • 2021-11-11
    • 2020-03-19
    • 2015-04-08
    • 2015-07-18
    相关资源
    最近更新 更多