【问题标题】:Unable to delete object in an array in JavaScript无法在 JavaScript 中删除数组中的对象
【发布时间】:2021-10-03 11:32:22
【问题描述】:

我一直在尝试从数组中删除具有特定值的对象,所有代码和语法似乎都失败了,即使是我在这个平台上复制的那些。

// UNABLE TO WRITE "DELETE" CAMPUS DIRECTOR CODE
router.delete("/:id/director", userAuth, checkRole(["admin"]), async(req, res) => {
    const campus = await Campus.findById(req.params.id);
    const campusAdmins = campus.admins
    // campusAdmin will return a single object in an array [{_id: 1234567865434543, title: "campus director", userId: "9876543456fdfgfdgf"}]
    try {
        campusAdmins.splice(campusAdmins.findIndex(e => e.title === "campus director"),1);
        console.log(campusAdmins);
        res.status(201).json("You've successfully delete campus director");
    } catch (err) {
        res.status(500).json(err);
    }
})

请帮我解决这个问题。

【问题讨论】:

    标签: javascript node.js mongodb express mongoose


    【解决方案1】:

    您确定campusAdmins 返回您在评论中指定的对象吗?

    语法没有问题,这行得通:

    const campusAdmins = [{
      _id: 1234567865434543,
      title: "campus director",
      userId: "9876543456fdfgfdgf"
    }];
    
    try {
      campusAdmins.splice(campusAdmins.findIndex(e => e.title === "campus director"), 1);
      console.log(campusAdmins);
      console.log("Successfully deleted campus director");
    } catch (err) {
      console.log("Failure");
    }

    【讨论】:

    • 其实说明对象被删除了,但是对象还在数据库中。
    • 谢谢老大,我终于解决了,我忘了在我的代码中添加campus.save()
    猜你喜欢
    • 2016-12-20
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 2021-08-11
    • 2015-07-22
    • 1970-01-01
    相关资源
    最近更新 更多