0

I have object and an array:

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.

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

5 Answers 5

1

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

Sign up to request clarification or add additional context in comments.

Comments

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

Comments

1

You almost got it, but you have a typo. You need a comma in the elProd array. 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);

Comments

1

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

1 Comment

You need to add !elProd.includes(obj.product) as he expects other products than the ones from the elProd array.
0

You could use filter and 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)

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.