当该元素的 属性 为空时删除多维数组中的元素

Delete element in multidimensional array when a property of that element is empty

嘿,当他的数组 属性“texts”为空时,我正在尝试删除多维数组中的一个元素。我正在尝试的方法是像这样使用过滤器方法:

array.filter(item => item.texts.length === 0)

但由于某种原因,它不起作用。另一种方法是通过名称 属性 (我可以访问)找到元素,获取其索引,检查其中的文本数组是否为空并使用 splice 方法将其删除,但我不确定如何在多维数组中做到这一点。任何帮助将不胜感激。

这是我正在处理的数组:

const array = [
 0: Object {
  name: 'Name 1',
  texts[
   0: Obj{
    id: '123',
    body: 'test message'
   },
   1: Obj{
    id: '456',
    body: 'test message 2'
   }
  ]
 },

 1: Object {
  name: 'Name 2',
  texts[
   0: Obj{
    id: '789',
    body: 'test message3'
   },
   1: Obj{
    id: '101112',
    body: 'test message 4'
   }
  ]
 }
]

你需要确保你的Object声明正确,然后反推逻辑。

array.filter(item => item.texts.length !== 0)

const array = [
  {
    name: 'Name 1',
    texts: [
      {
        id: '123',
        body: 'test message'
      },
      {
        id: '456',
        body: 'test message 2'
      }
    ]
  },
  {
    name: 'Name 2',
    texts: []
  }
]

console.log(array.filter(item => item.texts.length !== 0));