在对象数组内的对象数组上运行“every”方法

我试图检查这个双数组中的属性是否有任何长度


const cars = [

  {

    name: 'audi',

    options: [

      {

        color: 'white'

      },

      {

        color: 'black'

      }

    ]

  },

  {

    name: 'bmw',

    options: [

      {

        color: 'red'

      },

      {

        color: ''

      },

      {

        color: 'green'

      }

    ]

  }

]

const results = cars.map(({ options }) => options.every((opt) => opt.color.length))

const result = !results.includes(false)

console.log(result)

// It returns false cause bmw has an empty color property 

我通过为每个数组添加一个带有布尔值的数组every,然后检查该数组上是否有 false 来完成此操作,但感觉没有必要。

如果嵌套数组内的任何给定属性有条件,是否有方法返回单个布尔值?


慕的地8271018
浏览 119回答 1
1回答

慕勒3428872

也只考虑every外部数组。const    cars = [{ name: 'audi', options: [{ color: 'white' }, { color: 'black' }] }, { name: 'bmw', options: [{ color: 'red' }, { color: '' }, { color: 'green' }] }],    result = cars.every(({ options }) =>        options.every(({ color: { length } }) => length)    );console.log(result);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript