首页 > 解决方案 > 如何在javascript中删除空数组长度

问题描述

我有一个对象。如果它是空的,我需要删除对象属性数组。为了。例如, test 和 books 将被删除并赋予其他值。

const PermissionObj = {
   permission: [
    {
      "test": []
   },
   {
      "books": []
   },
   {
      "Journals": [
         {
            "label": "Can View",
            "value": "can_view"
         },
         {
            "label": "Can Create",
            "value": "can_create"
         }
      ]
   },
   {
      "deal": [
         {
            "label": "Can update",
            "value": "can_update"
         },
         {
            "label": "Can delete",
            "value": "can_delete"
         }
      ]
   }
 ]
};

我正在使用双循环来解决这个问题,但我真的很麻烦

标签: javascript

解决方案


用于filter()使用条件,并将Object.value()Object 转移到 Array

const result = PermissionObj.permission.filter(x => Object.values(x)[0].length !== 0);

  const PermissionObj = {
    permission: [
      {
        test: []
      },
      {
        books: []
      },
      {
        Journals: [
          {
            label: "Can View",
            value: "can_view"
          },
          {
            label: "Can Create",
            value: "can_create"
          }
        ]
      },
      {
        deal: [
          {
            label: "Can update",
            value: "can_update"
          },
          {
            label: "Can delete",
            value: "can_delete"
          }
        ]
      }
    ]
  };
    const a = PermissionObj.permission.filter(x => Object.values(x)[0].length !== 0);
  console.log(a);


推荐阅读