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