3 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
Set
您可以對(duì)所有值取 apro_code
并通過(guò)檢查該值是否不在集合中來(lái)過(guò)濾第二個(gè)數(shù)組。
const
? ? array1 = [{ des: "cont1", note: "cont1", pro_code: "XXY" }, { des: "cont2", note: "cont2", pro_code: "NNB" }, { des: "cont4", note: "cont4", pro_code: "QQA" }, { des: "cont5", note: "cont5", pro_code: "GFD" }],
? ? array2 = [{ des: "cont1", note: "cont1", pro_code: "XXY" }, { des: "cont2", note: "cont2", pro_code: "NNB" }, { des: "cont3", note: "cont3", pro_code: "QAS" }],
? ? pro_codes = new Set(array1.map(({ pro_code }) => pro_code)),
? ? result = array2.filter(({ pro_code }) => !pro_codes.has(pro_code));
console.log(result);

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
這是另一個(gè)優(yōu)化的解決方案
const arr1 = [{
des: "cont1",
note: "cont1",
pro_code: "XXY"
}, {
des: "cont2",
note: "cont2",
pro_code: "NNB"
}, {
des: "cont4",
note: "cont4",
pro_code: "QQA"
}, {
des: "cont5",
note: "cont5",
pro_code: "GFD"
}];
const arr2 = [{
des: "cont1",
note: "cont1",
pro_code: "XXY"
}, {
des: "cont2",
note: "cont2",
pro_code: "NNB"
}, {
des: "cont3",
note: "cont3",
pro_code: "QAS"
}];
const results = arr2.filter(({ pro_code: id1 }) => !arr1.some(({ pro_code: id2 }) => id2 === id1));
console.log(results);

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
簡(jiǎn)而言之,您的要求是過(guò)濾arr2并保留不在arr1.
const arr3 = arr2.filter(function(arr2item) {
// only keep this item if it is not in arr1
return !arr1.some(function(arr1item) {
return arr1item.pro_code === arr2item.pro_code;
})
});
const arr1 = [{des: "cont1", note: "cont1", pro_code: "XXY"}, {des: "cont2", note: "cont2", pro_code: "NNB"}, {des: "cont4", note: "cont4", pro_code: "QQA"}, {des: "cont5", note: "cont5", pro_code: "GFD"}];
const arr2 = [{des: "cont1", note: "cont1", pro_code: "XXY"}, {des: "cont2", note: "cont2", pro_code: "NNB"}, {des: "cont3", note: "cont3", pro_code: "QAS"}]
const arr3 = arr2.filter(function(arr2item) {
return !arr1.some(function(arr1item) {
return arr1item.pro_code === arr2item.pro_code;
})
});
console.log(arr3);
添加回答
舉報(bào)