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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.