【问题标题】:How to set all object properties to null in JavaScript?如何在 JavaScript 中将所有对象属性设置为 null?
【发布时间】:2017-07-12 03:01:09
【问题描述】:

我正在使用 Vue,但使用 vuetify 计算的一些 CSS 突然无法正常工作。

我声明对象的方式是

personal_info : {}

在我的模板中,我可以在文本输入的每个 v-model 中执行 personal_info.name 和其他更多操作。

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

如您所见,文本和标签是重叠的。
使它起作用的唯一方法是将属性设置为 null,即:

personal_info : {
  name: null
}

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

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

【问题讨论】:

  • 你可以设置:personal_info = {}
  • @Saurabh 更新了我的帖子

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


【解决方案1】:

Vilas 示例没问题。但是如果你有嵌套属性并且你的 obj 看起来像这样,你可以试试我的 sn-p

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));

【讨论】:

    【解决方案2】:

    签出这个sn-p

    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'

    【讨论】:

    • 把它和我的代码结合起来是行不通的,因为我们知道 javascript 是同步的
    • @FewFlyBy 您现在面临什么问题?这个对象是怎么产生的?您是否使用任何/更多 api 调用来生成它?
    • 我没有使用任何 api 等。我仍然得到同样的东西
    • 好的,您介意分享一下personal_info 中存储的数据类型吗?或者您可以创建一个小提琴并粘贴链接
    • 如果我把项目放到github上你有兴趣吗?只需 npm install 和 npm run dev it after ..
    猜你喜欢
    • 2019-04-23
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2015-03-28
    相关资源
    最近更新 更多