JSFiddle - React, Tailwind, and code Playground
by František Ferko
JavaScript
const fruits = ["apples", "oranges", "mango"]
const veggies = ["carrots", "onions", "brocoli"]
const fruitsnveggies = [
{ "item": "apples", "quantity": 3},
{ "item": "oranges", "quantity": 2},
{ "item": "carrots", "quantity": 5},
{ "item": "mango", "quantity": 2},
{ "item": "brocoli", "quantity": 3},
{ "item": "chillipowder", "quantity": 3},
{ "item": "onions", "quantity": 3},
{ "item": "ketchup", "quantity": 1}
];
const onlyVegies = fruitsnveggies
.filter(a => veggies.includes(a.item))
.reduce((acc, val) => {
return {
item: "veggies",
quantity: acc.quantity + val.quantity,
}
}, {item: "veggies", quantity: 0});
const onlyFruits = fruitsnveggies
.filter(a => fruits.includes(a.item))
.reduce((acc, val) => {
return {
item: "fruits",
quantity: acc.quantity + val.quantity,
}
}, {item: "fruits", quantity: 0});
const others = fruitsnveggies
.filter(a => !fruits.includes(a.item) && !veggies.includes(a.item))
.reduce((acc, val) => {
return {
item: "others",
quantity: acc.quantity + val.quantity,
}
}, {item: "others", quantity: 0});
console.log("result: ", [onlyVegies, onlyFruits, others])