JSFiddle - React, Tailwind, and code Playground

by Fernando

HTML

<b id="txd"></b><br />
<b id="tx"></b><br />

JavaScript

(function(w){
	var morse = {
		alpha:{a:'.-',b:'-...',c:'-.-.',d:'-..',e:'.',f:'..-.',g:'--.',h:'....',i:'..',j:'.---',k:'-.-',l:'.-..',m:'--',n:'-.',o:'---',p:'.--.',q:'--.-',r:'.-.',s:'...',t:'-',u:'..-',v:'...-',w:'.--',x:'-..-',y:'-.--',z:'--..'},
		code:{},
		maxl:0,
		encode:function(string){
			var p=[];
			string.toLowerCase().split(" ").forEach(function(v){
				var s=[];
				v.split("").forEach(function(l){
					s.push(morse.alpha[l]);
				});
				p.push(s.join(""));
			})
			return p.join(" ");
		},
		_decode:function(string){
			var  l = string.length, c=[];
			for ( var i = 0; i<l; i++){
				c.push((function(){
					var p=[]; n='';
					for(var ik = 1; ik<=morse.maxl; ik++){
						var res	= string.substr(i,ik);
						if( n != res ){
							n=res;
							if(morse.code[res])
							p.push(res); 
						}
					};
					return p;
				})())
				
			}
			var li = c.length;
			matrix = []; 
			var fn = function(col, st, mt){
				if(!c[col]) return;
				for(var n in c[col]){
					var co = c[col][n];
					var sf = mt.slice(0);
					sf.push([col,n]);
					if( string === (st+co)){
						var code = [];
						sf.forEach(function(i){
							code.push(morse.code[c[i[0]][i[1]]]);
						});
						code = code.join("");
						matrix.push(code);
					}else{
						for( var i=col+(1+parseInt(n)); i<li ;i++ ){
							fn(i,st+co,sf);
						}
					}
				}
			}
			fn(0,'',[]);
			matrix.sort();
			return matrix;
		},
		decode:function(string){
			var res = [];
			string.split(" ").forEach(function(v){
				res.push(morse._decode(v));
			});
			return res;
		},
		ini:function(){
			var keys=[],tm={};
			for (var n in morse.alpha){
				var c = morse.alpha[n];
				tm[c]=n;
				keys.push(c);
				if( morse.maxl< c.length )morse.maxl=c.length;
			};
			keys.sort().forEach(function(v,k){
				morse.code[v]=tm[v];
			});
		}
	}
	morse.ini();
	w.morse=morse;	
})(window);

/////////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
console.log(morse.encode("cesar"));
var tx='';
var dateini= new...