如何在javascript的两个对象值数组中检查属性值



我有两个对象值数组,

a1a2

如果CCD_ 3和CCD_,mainidmain是真正的

然后返回

真实

否则返回

错误

var result = a1.find(e=> a2.find(i=>i.cidvalue===e.idvalue));
var a1=[
{id:1, idvalue: “teamA“,mainid: true, name: “ben4”}
]
var a2 =[
{id:2, cidvalue: “teamA”, main: true, name: ”ben3”},
{id:3, cidvalue: undefined, main: false, name: ”ben2”},
]

预期输出

true

您的代码正按预期正确工作。

将match子句编辑为此特定语句:

i => i.cidvalue === e.idvalue && e.mainid === i.main

使用下面的Array.prototype.every检查这个工作片段并进行一些调整,以返回一个布尔值,指示是否找到匹配:

const a1 = [
{ id: 1, idvalue: "teamA", mainid: true, name: "ben4" },
]
const a2 = [
{ id: 2, cidvalue: "teamA", main: true, name: "ben3" },
{ id: 3, cuid: undefined, main: false, name: "ben2" },
] 
const result = a1.every(e => a2.find(i => i.cidvalue === e.idvalue && e.mainid === i.main));
console.log(result)

这里,我有一个带有a1的列表a2,如果数据大于0,则设置为true。

var a1 = [
{ id: 1, idvalue: "teamA", mainid: true, name: "ben4" }
]
var a2 = [
{ id: 2, cidvalue: "teamA", main: true, name: "ben3" },
{ id: 3, cuid: undefined, main: false, name: "ben2" },
]
console.log(a2.filter(item => a1.find(itemm => itemm.idvalue === item.cidvalue)).length > 0);

使用Array.every将数组a1中的每个元素与a2进行比较

var a1 = [
{ id: 1, idvalue: "teamA", mainid: true, name: "ben4" },
]
var a2 = [
{ id: 2, cidvalue: "teamA", main: true, name: "ben3" },
{ id: 3, cuid: undefined, main: false, name: "ben2" },
]
var result = a1.every(e => a2.find(i => i.cidvalue === e.idvalue && e.mainid && i.main));
console.log(result);

最新更新