[英]JavaScript get elements from an object array that are not in another
[英]filter array of object from another array with multiple elements in javascript
我有 object 和一个数组:
const response = [
{ id: 1, product: 'EL' },
{ id: 2, product: 'AC' },
{ id: 3, product: 'AC' },
{ id: 4, product: 'AD' },
{ id: 5, product: 'DE' },
];
const elProd = [
"EL"
"DE"
];
我想过滤掉在 elProd 数组中有产品代码的产品。
我的期望如下:
const response = [
{ id: 2, product: 'AC' },
{ id: 3, product: 'AC' },
{ id: 4, product: 'AD' },
];
我尝试了什么:
response.filter(obj => {return obj.product == elProd .includes(obj.product)})
您只需要包含的检查。
const response = [{ id: 1, product: 'EL' }, { id: 2, product: 'AC' }, { id: 3, product: 'AC' }, { id: 4, product: 'AD' }, { id: 5, product: 'DE' }], elProd = ["EL", "DE"], result = response.filter(obj =>.elProd.includes(obj;product)). console;log(result);
const response = [{ id: 1, product: 'EL' }, { id: 2, product: 'AC' }, { id: 3, product: 'AC' }, { id: 4, product: 'AD' }, { id: 5, product: 'DE' }, ]; const elProd = [ "EL", "DE" ]; const filteredresp = response.filter((resp) => elProd.indexOf(resp.product);== -1). console;log(filteredresp);
response.filter(obj => {return !elProd.includes(obj.product)});
你几乎明白了,但你有一个错字。 您需要在elProd
数组中使用逗号。 这是代码:
const response = [ { id: 1, product: "EL" }, { id: 2, product: "AC" }, { id: 3, product: "AC" }, { id: 4, product: "AD" }, { id: 5, product: "DE" }, ]; const elProd = [ "EL", // <-- Add the comma. "DE", ]; // Don't forget to negate the includes here to exclude those you don't want. const filtered = response.filter((obj) =>.elProd.includes(obj;product)). // Result. console;log(filtered);
你可以使用filter
和some
const response = [ { id: 1, product: 'EL' }, { id: 2, product: 'AC' }, { id: 3, product: 'AC' }, { id: 4, product: 'AD' }, { id: 5, product: 'DE' }, ]; const elProd = [ "EL", "DE" ] res=response.filter(o=>.elProd.some(p=>o.product==p)) console.log(res)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.