遍历对象并删除JavaScript中的false属性

假设我们有一个像这样的JSON对象-

const obj = {

   a: {

      someKey: {

         propOne: '',

         enabled: true

      }

   },

   b: {

      someKey: {

         propOne: '',

         enabled: false

      }

   },

   c: {

      someKey: {

         propOne: '',

         enabled: false

      }

   },

   someKey: {

      ab: {

         propOne: '',

         enabled: true

      }

   }

};

我们需要编写一个JavaScript函数,该函数接受一个这样的对象,并从该对象中递归地删除所有具有错误值的“启用”属性。

示例

为此的代码将是-

const obj = {

   a: {

      someKey: {

         propOne: '',

         enabled: true

      }

   },

   b: {

      someKey: {

         propOne: '',

         enabled: false

      }

   },

   c: {

      someKey: {

         propOne: '',

         enabled: false

      }

   },

   someKey: {

      ab: {

         propOne: '',

         enabled: true

      }

   }

};

const deleteFalsyKey = obj => {

   const keys = Object.keys(obj);

   keys.forEach(key => {

      if(obj[key].enabled === false){

         delete obj[key];

         return;

      };

      if(obj[key] && typeof obj[key] === 'object'){

         deleteFalsyKey(obj[key]);

         if (!Object.keys(obj[key]).length) {

            delete obj[key];

         };

      }

   });

};

deleteFalsyKey(obj);

console.log(obj);

输出结果

控制台中的输出-

{

   a: { someKey: { propOne: '', enabled: true } },

   someKey: { ab: { propOne: '', enabled: true } }

}

以上是 遍历对象并删除JavaScript中的false属性 的全部内容, 来源链接: utcz.com/z/321618.html

回到顶部