JSFiddle - React, Tailwind, and code Playground

by Michael Prosser

JavaScript

var data = {
	f_unit: 65
}

var calculation_string = '(([f_unit] -= 32) x 5) / 9';

function getEquation(data,cs){

	var workingstring = cs;
  
  var evalstring = '';
  
  var i = 0;
  
  var dataTagsFound = 0;
  
  while(workingstring.length > i){
  
  	if(workingstring.substring(i,i+1) == '['){
    
    	// found data tag - get the value of tag
      
     var end = workingstring.indexOf(']',dataTagsFound);
     
     var tag = workingstring.substring(i+1,end);
     
     console.log("TAG",tag);
     
     dataTagsFound++;
     
     evalstring += "data['" + tag + "']";
     
     i+=(tag.length+2);
    
    } else if((workingstring.substring(i,i+1) == 'x') || (workingstring.substring(i,i+1) == 'X')){
    
    	evalstring += '*';
      
      i++;
    
    } else {
    
    console.log("ADDING: " + workingstring.substring(i,i+1));
    
    	evalstring += workingstring.substring(i,i+1);
      
      i++;
    
    }
  
  }
  
  return evalstring;

}

console.log(eval(getEquation(data,calculation_string)));