![](/img/trans.png)
[英]How do I use the includes method in lodash to check if an object is in the collection?
[英]How do I use .includes() or similar in a Object?
我正在尝试检查第一个 arg 是否包含以下对象数组中的第二个:
whatIsInAName(
[
{ first: "Romeo", last: "Montague" },
{ first: "Mercutio", last: null },
{ first: "Tybalt", last: "Capulet" }
],
{ last: "Capulet" });
我不能在我的逻辑中使用includes()
因为它是一个数组方法。 我试图从whatIsInAName
检索对象并使用Object.entries()
将它们传递到数组中,但这也不起作用。 我的两个选择是将对象“转换”为数组。 或者找到一个不同的替代方法includes()
,我可以在对象中使用它。
有什么想法吗?
谢谢
使用some
方法检查数组中是否存在Capulet
:
let obj = { last: "Capulet" };
const isExist = whatIsInAName.some(f => f.last == obj.last)
const whatIsInAName = [ { first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" } ]; let obj = { last: "Capulet" }; const isExist = whatIsInAName.some(f => f.last == obj.last) console.log(`Exists: ${isExist}`)
或者您可以使用filter
根据条件获取所有对象:
const whatIsInAName = [ { first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" } ]; let obj = { last: "Capulet" }; const result = whatIsInAName.filter(f => f.last == obj.last); console.log(result)
实际上,您可以使用some
比map
/ filter
更快的自定义includes
function whatIsInAName(arr, obj) { return arr.some(({ last }) => last === obj.last) } const testArray = [{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" } ] const testObj1 = { last: "Capulet" } const testObj2 = { last: "FOO" } const res1 = whatIsInAName(testArray, testObj1); const res2 = whatIsInAName(testArray, testObj2); console.log(res1); console.log(res2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.