如何实现判断对象的所有属性值均为空数组的逻辑?
解决对象所有数组属性为空的判断问题
先指出你代码里的几个问题:
- 变量名笔误:定义的对象是
test,但代码里用了未声明的cl,会直接触发报错 - 逻辑偏离需求:你用
Object.entries拿到的是[键, 值]对,接着Object.values(element)是把这个数组拆成键和值的集合,然后判断是否存在空字符串——但你的需求是检查所有属性值都是空数组,逻辑方向完全错了
正确实现代码
const test = { "10": [], "1": [] }; // 获取对象所有属性值,检查每个值都是数组且为空 const output = Object.values(test).every(val => Array.isArray(val) && val.length === 0); console.log(output); // 输出 true
逻辑说明
Object.values(test):提取对象所有属性值组成数组,这里结果是[[], []]every(val => ...):遍历每个值,只有所有值都满足条件时才返回trueArray.isArray(val) && val.length === 0:确保当前值是数组类型,并且数组长度为0(即空数组)
如果对象里可能存在非数组属性,只想检查数组类型的属性是否全为空,可以调整逻辑:
const test = { "10": [], "1": [], "desc": "" }; const output = Object.values(test) .filter(val => Array.isArray(val)) // 只筛选数组类型的属性 .every(val => val.length === 0); console.log(output); // 输出 true
内容的提问来源于stack exchange,提问作者Marizona
相关产品推荐
相关产品推荐

