在JavaScript中为对象和嵌套对象赋值

在JavaScript中为对象和嵌套对象赋值,javascript,vue.js,object,assign,Javascript,Vue.js,Object,Assign,因此,基本上,我有一个对象(在vue data()中): 。。。 详情:{ 标题:“我不知道”, 日期:2020-02-12, 发件人:{ 姓名:“John Cenna”, 用户名:“john10” }, 最近:{ 姓名:“Katleen”, 用户名:“katmeow” }, .... } 现在,我想将它们全部赋值为null(对于验证过程,有点),但不能赋值嵌套对象(没有子对象的对象可以只使用循环)。我该怎么做?谢谢递归解决方案: 用于迭代对象的键值项,如下所示。请注意,Object.entr

因此,基本上,我有一个对象(在vue data()中):

。。。
详情:{
标题:“我不知道”,
日期:2020-02-12,
发件人:{
姓名:“John Cenna”,
用户名:“john10”
},
最近:{
姓名:“Katleen”,
用户名:“katmeow”
},
....
}
现在,我想将它们全部赋值为null(对于验证过程,有点),但不能赋值嵌套对象(没有子对象的对象可以只使用循环)。我该怎么做?谢谢

递归解决方案:

  • 用于迭代对象的键值项,如下所示。请注意,
    Object.entries()
    为非对象返回一个空数组
  • 如果条目的值已为
    null
    未定义
    ,则返回
  • 如果条目的值是数组,则在每个数组项上递归(转到步骤1,将数组项作为要计算的新对象)
  • 如果条目的值是对象,则在对象上递归
  • 否则,将条目的值设置为
    null
  • const数据={
    详情:{
    标题:“我不知道”,
    日期:2020-02-12,
    发件人:{
    姓名:“John Cenna”,
    用户名:“john10”
    },
    最近:{
    姓名:“Katleen”,
    用户名:“katmeow”
    },
    项目:[
    {id:100,名称:'Apple'},
    {id:200,名称:'Banana'},
    {id:300,名称:'Orange'},
    ]
    }
    }
    函数无效(obj){
    // 1
    Object.entries(obj.forEach)([k,v])=>{
    // 2
    if(v==null | | v==undefined){
    回来
    }
    // 3
    if(数组isArray(v)){
    返回v.forEach(无效)
    }
    // 4
    if(typeof v==='object'){
    使无效(obj[k])
    }否则{
    // 5
    obj[k]=null
    }
    })
    }
    使无效(data.detail)
    
    console.log('res',data.detail)
    您可能需要使用某种形式的循环。