我最初的任务是创建一个函数,如果我的数据对象包含真实值,则该函数返回布尔值。
我不在乎什么值或键是真实的,只是在数据中包含真实值。
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
的问题,不仅仅是断言数据库中存在真实值的断言
答案 0 :(得分:3)
如果您需要旧式JavaScript,则只需进行简单的for
循环:
function hasTruthy(fruits) {
for (var key in fruits) {
if (fruits.hasOwnProperty(key) && fruits[key]) return true;
}
return false;
}
答案 1 :(得分:0)
您甚至不需要进行ls *.avi | xargs -i -n1 bash -c "i={}; ffmpeg -i {} "\${i%.*}.mp4"
检查。
hasOwnProperty