我想使用lodash检查某个属性是否具有某个值。下面的代码显示为false。如何正确检查该值?
const ob = {
archived:true,
done: true
}
console.dir(_.includes(ob.archived, true));
答案 0 :(得分:2)
您需要直接将_.includes
与对象一起使用,这是一个示例:
const ob = {archived:true};
_.includes(ob, true); // true
如果您只需要检查一个值,则可以使用以下方法:
const ob = {archived:true, done: true};
_.includes(_.pick(ob, ['archived']), true); // true
答案 1 :(得分:0)
您可以使用_.matchesProperty()
。该方法生成一个函数,该函数接受一个对象,如果该对象包含所声明的属性和值,则返回true
。
const hasArchivedTrue = _.matchesProperty('archived', true)
const ob = {
archived: true,
done: true
}
console.log(hasArchivedTrue(ob)) // true
console.log(hasArchivedTrue({})) // false
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>