使用lodash检查对象的某些值

时间:2019-05-03 15:41:41

标签: lodash

我想使用lodash检查某个属性是否具有某个值。下面的代码显示为false。如何正确检查该值?

code example

const ob = {
 archived:true,
 done: true
}

console.dir(_.includes(ob.archived, true));

2 个答案:

答案 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>