javascript - 为 object.value 填充以返回真实的断言
问题描述
我最初的任务是创建一个函数,如果我的数据对象包含一个真实值,则该函数返回一个布尔值。
我不在乎什么值或键是真实的,只关心数据包含真实值。
var fruits = { apples: false, oranges: true, bananas: true }
当迭代这个对象时,返回应该是true
因为里面有true
值。
以下功能确实有效:
return Object.values(fruits).some(function(k) {
return k;
});
但是由于 IE 兼容性,我不能使用Object.value
也不能使用array.some
建议使用 Polyfill.map
来获取每个值,但是下一步是删除.some()
- 我尝试过使用.filter()
,但这让我回到原来的问题,即它返回的key
是真值,而不仅仅是断言存在真值数据库
解决方案
如果你需要老式的 JavaScript,那么就去一个普通的for
循环:
function hasTruthy(fruits) {
for (var key in fruits) {
if (fruits.hasOwnProperty(key) && fruits[key]) return true;
}
return false;
}
推荐阅读
- javascript - javascript用下划线替换随机字母
- css - 如何在页面中的第 n 个 div 上应用 CSS
- unit-testing - 如何在 go-sqlmock 中添加多个结果集?
- powershell - 将本地 PowerShell 命令转换为 Cim-Instance 以进行远程管理
- ajax - 如何从外部站点服务器加载 XML(使用 AJAX)?
- java - 返回数据 - Java
- go - 更改指向 *os.File 的指针
- java - 分离游戏逻辑和UI
- python - Python - 从列表创建数组?!
- javascript - Vue:监视路径名以检测 URL 更改