简体   繁体   English

从另一个数组中过滤 object 的数组,在 javascript 中有多个元素

[英]filter array of object from another array with multiple elements in javascript

I have object and an array:我有 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"
];

i want to filter out the product which has product code in elProd array.我想过滤掉在 elProd 数组中有产品代码的产品。

my expectation is below:我的期望如下:

const response = [

    { id: 2, product: 'AC' },
    { id: 3, product: 'AC' },
    { id: 4, product: 'AD' },
   
];

what I tried:我尝试了什么:

 response.filter(obj => {return obj.product == elProd .includes(obj.product)})

You need only the check with includes.您只需要包含的检查。

 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)});

You almost got it, but you have a typo.你几乎明白了,但你有一个错字。 You need a comma in the elProd array.您需要在elProd数组中使用逗号。 Here's the code:这是代码:

 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);

You could use filter and some你可以使用filtersome

 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM