0

I'm trying to use my concatenated string as a prescribed variable, I've tried eval(), window.,var instead of let, ...

Here is the code:

let selected = document.getElementById("idTempUnit");
setInterval(randomTempCelcius,1000);

let tempCelsius = Math.floor(Math.random()*50+3);

function randomTempCelcius(){
    tempCelsius = Math.floor(Math.random()*30+3);
}
let tempFahrenheit = tempCelsius * 1.8 + 32
let tempKelvin = tempCelsius + 273.15
let list = [];

let constTempObservable = new Observable((subscriber) => {
    button.onclick = function() {
        let stringtest = "temp"+selected.value
        console.log(`heey ${stringtest}`)
        if(!(list.includes(selected.value))){
            list.push(selected.value);
            addCard(selected.value, `temp${selected.value}` + "°");
        }
        subscriber.next({value0:list.indexOf(selected.value),value1:`temp${selected.value}`})
    }
});

I want to use the stringtest as the number defined above, so when I do console.log(heey ${stringtest}) I get the value generated at that moment.

  • Duplicate of ["Variable" variables in JavaScript](/q/5187530/4642212). In practice, you never need — or _want_, really — dynamic variable names. Use a simple object instead: `const temperatures = { tempFahrenheit: tempCelsius * 1.8 + 32, tempKelvin: tempCelsius + 273.15 };` … `console.log(temperatures[stringtest]);`. You can also get rid of the `temp` prefix. – Sebastian Simon Mar 17 '22 at 14:49
  • Thanks bro, I'm new to javascript. This helped me a lot! – Adrian Van den Broeck Mar 17 '22 at 15:24

0 Answers0