преобразование массива, Как удалить свойство обьекта, если все поля пустые?

Есть массив вида:

let objects = [
        [
            {
                "name": "1",
                "data": [
                    {
                        "prop1": "22",
                        "prop2": "56",
                        "values": [
                            {
                                "arr1": [{1},{2}],
                                "arr2": [{11},{22}],
                                "arr3": [{13},{23}]
                            }
                        ]
                    },
                    { "prop1": "22",
                        "prop2": "56",
                        "values": [
                            {
                                "arr1": [],
                                "arr2": [],
                                "arr3": []
                            }
                        ]
                    },
                    {
                         "prop1": "22",
                        "prop2": "56",
                        "values": [
                            {
                                "arr1": [],
                                "arr2": [],
                                "arr3": []
                            }
                        ]
                    }

                ]
            },
        {
        "name": "2",
        "data": [
            {
                 "prop1": "22",
                    "prop2": "56",
                    "values": [
                        {
                            "arr1": [{1},{2}],
                            "arr2": [{13},{23}],
                            "arr3": []
                        }
                ]
            },
            {
                 "prop1": "22",
                    "prop2": "56",
                    "values": [
                        {
                            "arr1": [],
                            "arr2": [],
                            "arr3": []
                        }
                ]
            }


        ]
    }
]
]

Как в поле data удалить этот элемент полностью, если в поле values все поля пустые. Т.е. должно в итоге выглядеть так

 let objects = [
            [
                {
                    "name": "1",
                    "data": [
                        {
                            "prop1": "22",
                            "prop2": "56",
                            "values": [
                                {
                                    "arr1": [{1},{2}],
                                    "arr2": [{11},{22}],
                                    "arr3": [{13},{23}]
                                }
                            ]
                        } 
                    ]
                },
            {
            "name": "2",
            "data": [
                {
                     "prop1": "22",
                        "prop2": "56",
                        "values": [
                            {
                                "arr1": [{1},{2}],
                                "arr2": [{13},{23}],
                                "arr3": []
                            }
                    ]
                }

            ]
        }
]

]


Ответы (1 шт):

Автор решения: Igor

let objects = [
  [{
      "name": "1",
      "data": [{
          "prop1": "22",
          "prop2": "56",
          "values": [{
            "arr1": [1, 2],
            "arr2": [11, 22],
            "arr3": [13, 23]
          }]
        },
        {
          "prop1": "22",
          "prop2": "56",
          "values": [{
            "arr1": [],
            "arr2": [],
            "arr3": []
          }]
        },
        {
          "prop1": "22",
          "prop2": "56",
          "values": [{
            "arr1": [],
            "arr2": [],
            "arr3": []
          }]
        }

      ]
    },
    {
      "name": "2",
      "data": [{
          "prop1": "22",
          "prop2": "56",
          "values": [{
            "arr1": [1, 2],
            "arr2": [13, 23],
            "arr3": []
          }]
        },
        {
          "prop1": "22",
          "prop2": "56",
          "values": [{
            "arr1": [],
            "arr2": [],
            "arr3": []
          }]
        }
      ]
    }
  ]
]

for (let i = 0; i < objects[0].length; i++) {
  for (let j = 0; j < objects[0][i].data.length; j++) {
    if (objects[0][i].data[j].values[0].arr1.length == 0 && objects[0][i].data[j].values[0].arr2.length == 0 && objects[0][i].data[j].values[0].arr3.length == 0) {
      objects[0][i].data.splice(j--, 1);
    }
  }
}
console.log(objects);

→ Ссылка