请问大家,这两组数组对象如何根据某个属性值是否相等做判断

let a = [
    {
        "parentId": "1",
        "categoryName": "张三",
    },
    {
        "parentId": "2",
        "categoryName": "李四",
    },

]

let b = [
    {
        "parentId": "2",
        "categoryName": "王五",
    },
]

根据parentId这个属性值 比较 a 和 b 两个数组对象 返回 ture和false 比如b数组里面的parentId为2 那么a和b相比,结果就返回true 我是想这样写的,但是两个对象不知道怎么写

const aa = this.list.some((val, index) => {
    return val.parentId .......
})
console.log(aa);
阅读 2k
1 个回答

如果 b 中只有一个数据,直接用 some 就出来了,类似题主写的那样

const aa = a.some(it => it.parentId === b[0].parentId);

这里直接取的 b 的第 1 个元素,即 b[0]

如果要判断 b 中所有元素都在 a 中有出现,对 b 加个 every() 判断

const aa = b.every(bIt => a.some(aIt => aIt.parentId === bIt.parentId));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题