首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从js对象中删除键值对

问无法从js对象中删除键值对
EN

Stack Overflow用户
提问于 2019-04-10 20:33:33
回答 1查看 154关注 0票数 2

我正在接收一个来自mongodb query的js对象,我想使用delete optr从对象中删除一个键值对,但没有删除,isFollowing值也没有设置,但if part中的代码运行成功。(使用nodeJS)

我已经尝试使用delete选项来删除...然而,它适用于未定义的,但我设置为isFollowing的值不会反映在object中。

代码语言:javascript
复制
baseData.numFollowers = baseData.followers.length;
    baseData.numFollowing = baseData.following.length;    
    if(forWhom === 'self'){
        delete baseData.following;
        delete baseData.followers;
    }else 
    if(forWhom === 'other'){
        const selfUID = req.body.self_id;
        baseData.isFollowing = baseData.followers.includes(selfUID);
        delete baseData.followers;
        delete baseData.following;

    }

    let toSend = {success:true, basic:baseData};

正在获取结果:

代码语言:javascript
复制
{ 
  following: [],
  followers: [],
  numFollowers: 0,
  numFollowing: 0
 }

预期结果:

代码语言:javascript
复制
{
  numFollowers: 0,
  numFollowing: 0,
  isFollowing: true (or false)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-10 20:40:02

要使用delete,您需要通过调用toObject将模型文档转换为普通的JavaScript对象,这样您就可以像这样自由地操作它:

代码语言:javascript
复制
const base = baseData.toObject();

base.numFollowers = base.followers.length;
    base.numFollowing = base.following.length;    
    if(forWhom === 'self'){
        delete base.following;
        delete base.followers;
    }else 
    if(forWhom === 'other'){
        const selfUID = req.body.self_id;
        base.isFollowing = base.followers.includes(selfUID);
        delete base.followers;
        delete base.following;

    }

    let toSend = {success:true, basic:base};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55612690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档