繁体   English   中英

如何在对象中使用 .includes() 或类似内容?

[英]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)

实际上,您可以使用somemap / 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM