首页 > 解决方案 > 如何获取动态对象键并使用它?

问题描述

我有一个对象,我想手动设置它们的值

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 1after title, serving, description 的几个键是language_id 我如何设置键动态并将它们的值设置为''?

标签: javascript

解决方案


您可以使用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属性中的对象。但是通过适当的测试来检测这样的对象属性,您可以使其递归。请注意这可能会如何破坏,例如,如果您可能有循环引用。


推荐阅读