如何在JavaScript中将所有对象属性设置为null?

时间:2017-02-22 07:23:38

标签: vue.js vuejs2 vue-component vuetify.js

我正在使用Vue,突然一些使用vuetify的计算css无效。

我声明一个对象的方式是

personal_info : {}

在我的模板中,我可以在每个文本输入的v模型中执行personal_info.name等操作。

我没有错误,但突然之间vuetify有一个名为input-group--dirty的类,只要它不为空,它就会提升文本输入的标签。但突然之间,它没有奏效。它看起来像这样:

enter image description here

如您所见,文字和标签重叠 唯一能使它工作的是将属性设置为null,即:

personal_info : {
  name: null
}

问题是我有数百个文本输入,我不想将所有内容都设置为null。

有没有一种简单的方法可以将所有对象的属性设置为null而不是逐个编码?

2 个答案:

答案 0 :(得分:5)

结帐此代码段



var personal_info = {
  name: 'john',
  email: 'john@moto.com',
  phone: 9876543210
}
console.log(JSON.stringify(personal_info)); //before looping

for (var key in personal_info ) {
  personal_info[key] = null;
}

console.log(JSON.stringify(personal_info));//after looping and setting value to 'null'




答案 1 :(得分:1)

Vilas示例没问题。但是如果你有嵌套属性,你的obj看起来像这样,你可以试试我的代码片段

var obj = {
  a: 1 ,
  b: 2,
  c: {
    e:3,
    b: {
      d:6,
      e: ['23']
    }
  }
};

var setProps = function(flat, newVal){
   for(var i in flat){
     if((typeof flat[i] === "object") && !(flat[i] instanceof Array)){
       setProps(flat[i], newVal);
       return;
     } else {
       flat[i] = newVal;
     }
  }
}
setProps(obj, null);

console.log(JSON.stringify(obj));