首页 > 解决方案 > 如何在 2 个数组差异之间获取对象中的属性

问题描述

var a = [{a: '1', b: '1'}, {a: '2', b: '2'}]
var b = [{a: '2', b: '2'}, {a: '3', b: '23'}]
var c = a.map(itema => {if (b.some(itemb => itemb. a !== itema.a)) return {a: itema.a}})
console.log(c);


// result
c = [{a: '1'}, {a: '2'}]

// expected
c = [{a: '1'}]

标签: javascript

解决方案


您的要求尚不清楚,但根据您的期望输出,您可以使用下面的代码。

var a = [{a: '1', b: '1'}, {a: '2', b: '2'}]
var b = [{a: '2', b: '2'}, {a: '3', b: '23'}]
var c = a.reduce( (arr, itema) => { if (!b.reduce( (flag,itemb) => { return flag || itemb.a == itema.a }, false )) { arr.push({a: itema.a}) } return arr } , []);
console.log(c);

推荐阅读