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 =...