如何在 JavaScript 中将所有对象属性设置为 null?
Posted
技术标签:
【中文标题】如何在 JavaScript 中将所有对象属性设置为 null?【英文标题】:How to set all object properties to null in JavaScript? 【发布时间】: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 更新了我的帖子
【参考方案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 ..以上是关于如何在 JavaScript 中将所有对象属性设置为 null?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JavaScript 中给定其字符串名称设置对象属性(对象属性的..)?
如何在 HTML 日期输入类型中将对象的日期属性显示为默认值