javascript - 如何检查每个数组对象属性是否为空?
问题描述
函数的目的是在全部为空时获取false 。answers
目前,当只有一个answers
空的和其余的内部有数据时,有些如何得到 **false。
检查所有内容answers
是否为空的最佳方法是什么。没关系,有些有数据,有些没有。我只是想看看所有是否都是空的。
const questions = [{
"answers": [{
"value": "Browns",
"selected": false,
},
{
"value": "Oranges",
"selected": false,
},
{
"value": "Purples",
"selected": false,
}
],
"info": "",
"type": "DESELECT",
"lastUpdated": "2021-11-01T22:50:28.359"
},
{
"answers": [],
"info": "",
"type": "DESELECT",
"lastUpdated": "2021-11-01T22:50:35.392"
},
{
"answers": [{
"value": "AnimalPrints",
"selected": false,
},
{
"value": "BigLogos",
"selected": true,
},
{
"value": "Floral",
"selected": false,
}
],
"info": "",
"type": "DESELECT",
"lastUpdated": "2021-11-01T22:50:43.883"
}
];
console.clear();
console.log("------------ES6------------");
const es6Result = questions.every((item) => !_.isEmpty(item.answers));
console.log(es6Result);
const lodashResult = _.every(questions, !_.isEmpty('answers'));
console.log("------------Lodash------------");
console.log(lodashResult);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
解决方案
您可以使用.some()
,true
如果至少 1answers
不为空,您将得到false
,如果全部answers
为空,您将得到
const es6Result = questions.some((item) => item.answers.length);
推荐阅读
- visual-studio-code - VSCode:找不到任务中的环境变量
- javascript - 使用量角器 + appium 运行 android app 测试
- c++ - 将 Vulkan 与 SFML 一起使用?
- android - 错误:找不到 exifinterface.jar (com.android.support:exifinterface:27.1.1)
- javascript - 使用 mount() 反应酶,显示来自父级 .html() 的元素,但没有找到带有 .find() 的元素
- scala - 如何使用 Scala 在 Spark 中对 Row 类型的 RDD 进行拆分
- python - 在 qgs Composer 图例中仅显示过滤层 - PyQgis
- jsp - spring boot jsp c:set不使用没有类型的原始值
- java - 先执行服务器调用,然后执行下一行代码
- angular - 如何从角度的SVG图标生成webfont