Chcę posłać do funkcji oblicz() parametry w postaci string. Zwrócona ma zostać obliczona wartość podanego wyrażenia. W której z poniższych form zastosowanie eval() jest ok?
Dane:
var liczby = ['2','3','1'], dodawanie = ['+'];
Pierwsza wersja:
function oblicz(a,b,c,d,e)
{
console.log('Licze...(plusy): '+a+' '+b+' '+c+' '+d+' '+e);
console.log('Licze...(przecinki): ',a,' ',b,' ',c,' ',d,' ',e);
console.log('a :',a);
console.log('b :',b);
console.log('c :',c);
console.log('d :',d);
console.log('e :',e);
return eval(a+b+c+d+e);
};
console.log('WYNIK ',oblicz(liczby[0],dodawanie[0], liczby[1],dodawanie[0], liczby[2]));
Druga wersja:
function obliczP(a,c,e)
{
console.log('Licze...(plusy): '+a+' '+c+' '+e);
console.log('Licze...(przecinki): ',a,' ',c,' ',e);
console.log('a: ',a);
console.log('c: ',c);
console.log('e: ',e);
return eval(a+c+e);
};
console.log('WYNIK precyzyjny ',obliczP(liczby[0], liczby[1], liczby[2]));
Konsola:
Która wersja jest prawidłowa? Wg mnie pierwsza. Ale wolę się upewnić.