JSFiddle - React, Tailwind, and code Playground

by Shuaib Khan

JavaScript

var cakeJson = {
  "id": "0001",
  "name": "Cake",
  "size": [
    0.55,
    0.65,
    0.75,
    0.85
  ],
  "batters": {
    "batter": [
      {
        "id": "1001",
        "type": "Regular"
      },
      {
        "id": "1002",
        "type": "Chocolate"
      },
      {
        "id": "1003",
        "type": "Blueberry"
      },
      {
        "id": "1004",
        "type": "Devil's Food"
      }
    ]
  },
  "topping": [
    {
      "id": "5001",
      "type": "None"
    },
    {
      "id": "5002",
      "type": "Glazed"
    },
    {
      "id": "5005",
      "type": "Sugar"
    },
    {
      "id": "5007",
      "type": "Powdered Sugar"
    },
    {
      "id": "5006",
      "type": "Chocolate with Sprinkles"
    },
    {
      "id": "5003",
      "type": "Chocolate"
    },
    {
      "id": "5004",
      "type": "Maple"
    },
    {
      "id": "5008",
      "type": "Blueberry"
    }
  ]
}

// Make Cake Combination
var makeCakeCombinations = (size,batterIds,toppingsIds,cakesJson)=>{
	let cake = {};
  cake.batters = {};
  cake.id = cakesJson.id;
  cake.name = cakeJson.name;
  cake.size = getSize(cakeJson.size, size);
  cake.batters.batter = getResultfromArr(cakeJson.batters.batter, batterIds);
  cake.batters.topping = getResultfromArr(cakeJson.topping, toppingsIds);
  return cake;
}

// function to Get Size of Cake
function getSize(arr,size){
  if(arr.includes(size)){
    return size
  }else{
    return "No Size Found";
  }
}


// function to get Matching Object from Array 
function getResultfromArr(tArr, tIds){
	let results = [];
	tArr.forEach((it1,ind1)=>{
  	tIds.forEach((it2,ind2)=>{
    	if(it1.id == it2){
      	results.push(it1);
      }
    })
  });
  if(results.length){
  	return results;
  }else{
  	return "No Result Found!!"
  }
}


var cake1 = makeCakeCombinations(0.65,[1001],[5002,5005,5004],cakeJson);
var cake2 = makeCakeCombinations(0.65,[1002],[5002,5005,5003,5004],cakeJson);
var cake3 =...