Mam pewną funkcję która przyjmuje 3 argumenty:
- obiekt
- tablicę lub zmienną typu string
- dowolną wartość
Funkcja miała za zadanie zmienić wartość parametrów obiektu których nazwy znajdują się w argumencie 2
Jedyne rozwiązanie które działa wykorzystuje eval:
function bad(object, arg, new_value)
{
if (object==null || arg==null)
return false;
let command="object";
if(Array.isArray(arg))
{
arg.forEach((value)=>{
command+='['+value+']';
})
command+='='+new_value;
eval(command) /
}
else
{
object[arg]=new_value;
}
return true;
}
Czy da się zrobić coś takiego bez eval?