JavaScript 如何从对象中删除所有空对象

JavaScript 如何从对象中删除所有空对象

手头的任务是学习如何从JavaScript对象中删除所有空对象。让我们考虑以下对象:

const details =
{
   name: 'John',
   age: {},
   marks: { marks: {} }
}

我们需要删除上面的黑色对象,您可以使用forEach()加上typeof和delete来删除空白对象。让我们深入文章,以更好地理解删除空白对象。

使用reduce()

使用reduce()方法,为数组的每个元素运行一个reducer函数。该函数的总结果是reduce()方法提供的唯一值。在空数组元素的情况下,reduce()方法不运行该函数。原始数组不受reduce()技术的影响。

语法

下面是reduce()的语法−

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

示例

在下面的示例中,我们使用 reduce() 运行脚本,以从一个对象中删除空对象。

<!DOCTYPE html>
<html>
   <body>
      <script>
      let details = {
         "company":"Tutorialspoint","school": '',"college": '',
         "address": "kavuri incor9"
      };
      let result = Object.entries(details).reduce((a,[k,v]) => (v == '' ? a : (a[k]=v, a)), {});
      document.write(JSON.stringify(result))
      </script>
   </body>
</html>

当脚本执行时,它将生成一个输出,该输出是在包含值的对象的网页上打印的数组,所有空对象都被移除。

使用forEach()

对于数组中的每个元素, forEach() 方法执行指定的功能一次。

语法

以下是语法 forEach()

array.forEach(function(currentValue, index, arr), thisValue)

示例

考虑下面的示例,我们使用 forEach() 来从一个对象中移除空对象。

<!DOCTYPE html>
<html>
   <body>
      <script>
         const vehicles = {
            c: 'BENZ',
            a: 'BMW',
            r: '',
            s: ''
         };
         Object.keys(vehicles).forEach(key => {
            if(!vehicles[key])
            delete vehicles[key]
         });
         document.write(JSON.stringify(vehicles))
      </script>
   </body>
</html>

运行上述脚本后,输出窗口将弹出,显示在网页上打印的包含值的对象数组。

示例

让我们来看下面的示例,我们在这里使用扩展语法和forEach()方法运行脚本,用于从对象中移除空对象。

<!DOCTYPE html>
<html>
   <body>
      <script>
      let bikes = {
         bike1: "Rx100",
         bike2: '',
         bike3: '',
         bike4: "vespa"
      };
      let removeobj = {};
      Object.keys(bikes).forEach(val => {
         const newVal = bikes[val];
         removeobj = newVal ? { ...removeobj,
            [val]: newVal
         } : removeobj;
      });
      document.write(JSON.stringify(removeobj));
   </script>
   </body>
</html>

当脚本被执行时,输出窗口将弹出,触发事件并在网页上显示由值组成的对象数组。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程