JSFiddle - React, Tailwind, and code Playground

by Danilo Metzker

HTML

<pre></pre>

JavaScript

let combinations = "ABCD ABDC ACBD ACDB ADBC ADCB BACD BADC BCAD BCDA BDAC BDCA CABD CADB CBAD CBDA CDAB CDBA DABC DACB DBAC DBCA DCAB DCBA ABCE ABEC ACBE ACEB AEBC AECB BACE BAEC BCAE BCEA BEAC BECA CABE CAEB CBAE CBEA CEAB CEBA EABC EACB EBAC EBCA ECAB ECBA ABDE ABED ADBE ADEB AEBD AEDB BADE BAED BDAE BDEA BEAD BEDA DABE DAEB DBAE DBEA DEAB DEBA EABD EADB EBAD EBDA EDAB EDBA ACDE ACED ADCE ADEC AECD AEDC CADE CAED CDAE CDEA CEAD CEDA DACE DAEC DCAE DCEA DEAC DECA EACD EADC ECAD ECDA EDAC EDCA BCDE BCED BDCE BDEC BECD BEDC CBDE CBED CDBE CDEB CEBD CEDB DBCE DBEC DCBE DCEB DEBC DECB EBCD EBDC ECBD ECDB EDBC EDCB";

var mapObj = {
   A:"Ametista|",
   B:"Rubi|",
   C:"Esmeralda|",
   D:"AguaMarinha|",
   E:"Topazio|"
};
combinations = combinations.replace(/A|B|C|D|E/gi, function(matched){
  return mapObj[matched];
});

combinations = combinations.split(" ");

console.log("Total:", combinations.length);

let html = '';
combinations.map(combination => {
	if(combination.split("|").includes("Esmeralda")){
  	html += combination.replaceAll("|", " - ").replace(/\s-\s$/g, '')+"\n";
  }  
});

document.querySelector("pre").innerHTML = html;