dedlfix: eval()

Beitrag lesen

Tach!

Ich habe gelesen, dass man eval() möglichst nicht verwenden soll.

Vor allem, weil das eval() ungesehen alles ausführt, was man ihm vorsetzt. Besonders kritisch ist das bei Nutzereingaben, bei denen man sich nicht vergewissert hat, dass damit nichts ungewolltes passiert.

Die unten stehende Funktion soll ein Array zurückgeben in Abhängigkeit der id die man übergibt. Ohne dem "eval()" funktioniert das nicht, da der zusammengebaute String nicht als Array interpretiert wird.

Gibt es eine andere Möglichkeit?

Statt zweier Variablen könntest du eine nehmen, die aber ein Array ist oder ein Objekt.

myElements: function(id){
    arrElements = new Array();
    arrElements[0] = [1, 3, 4, 5, 7];
    arrElements[1] = [0, 2, 3, 4, 5, 6, 7];
       
    return arrElements[id];
}   

Oder

myElements: function(id){
    arrElements = {
        '0': [1, 3, 4, 5, 7],
        '1': [0, 2, 3, 4, 5, 6, 7]
    };
    return arrElements[id];
}   

dedlfix.