我正在尝试检查此双数组内的属性是否有任何长度
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
添加一个带有 bool 值的数组来完成此操作,然后检查该数组上是否有 false,但感觉没有必要。
如果嵌套数组内的任何给定属性有条件,是否有方法返回单个 bool 值?
最佳答案
只需将 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);
关于javascript - 对对象数组内的对象数组运行 `every` 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64953205/