javascript - 如何获取动态对象键并使用它?
问题描述
我有一个对象,我想手动设置它们的值
reset({
delivery: '',
description1: '',
dine_in: '',
hidden: '',
hide_category_tile_details: '',
internal_name: '',
serves1: '',
size: '',
takeaway: '',
title1: '',
upload_image: {
id: '',
src: '',
image_url: '',
result: null,
},
});
title1
像,serves1
是动态的并且来自language_id
This 1
after title, serving, description 的几个键是language_id
我如何设置键动态并将它们的值设置为''?
解决方案
您可以使用Object.keys()将对象自己的所有键的列表作为字符串数组获取,或者您可以使用for...in循环遍历对象的键。
例如,使用for...in
循环:
const myObj = {
delivery: 'a',
description1: 'b',
dine_in: 'c',
hidden: 'd',
hide_category_tile_details: 'e',
internal_name: 'f',
serves1: 'g',
size: 'h',
takeaway: 'i',
title1: 'j',
upload_image: {
id: 'k',
src: 'l',
image_url: 'm',
result: null,
},
}
const reset = function (object) {
for (let prop in myObj) {
if (typeof myObj[prop] === 'string') {
myObj[prop] = '';
}
}
};
reset(myObj);
console.log(JSON.stringify(myObj, null, '\t'));
如您所见,该函数不是递归的,因此它不会重置upload_image
属性中的对象。但是通过适当的测试来检测这样的对象属性,您可以使其递归。请注意这可能会如何破坏,例如,如果您可能有循环引用。
推荐阅读
- mongodb - 使用 Mongo4cats 的 Scala MongoDB 连接不起作用
- css - link_to 和 :hover 在我的 Rails 应用程序上不起作用
- django - 请为员工帐户输入正确的电子邮件和密码。两个地方都要注意大小写
- algorithm - 有人可以解释一下为什么二次函数在 Θ(n²) 中的具体证明吗?
- python - 如果return为none,如何在定义的函数中获取默认值?
- python - numpy arange functon throws AttributeError: while the same code gets executed over online ide
- python - Python通过调用递归静态方法初始化类变量
- mongodb - Mongodb:遍历所有数据库和集合以查找使用的字段(键)?
- python - 附加后尝试在 DataFrame 中的切片副本上设置值
- math - 为什么指定轨道运动需要近点论证?