2016-10-24 3 views
0

Wie geht es Ihnen? Nun, ich hoffe :)Zugriffsvariable in einer Deklaration eines Objekts

ich diesen Code

// Setup 
var collection = { 
    "5439": { 
     "album": "ABBA Gold" 
    } 
}; 


// Only change code below this line 
function updateRecords(id, prop, value) { 

    if(!collection[id].hasOwnProperty(prop) && value !== ""){ 
    collection[id] = { 
     prop: value 
    }; 
    } 
    return collection; 
} 



// Alter values below to test your code 
updateRecords(5439, "artist", "ABBA"); 

Fokus auf die Funktion Updaterecords haben.

Ich möchte Zugriff auf die Wertstütze meiner Funktion in der Deklaration des Objekts. Aber der Wert von prop innerhalb der Deklaration ist wie eine Zeichenkette. Wie kann ich es ändern?

Dies ist die Sammlung nach dem Code

var collection = { 
    "5439": { 
     prop: "ABBA" 

    } 
}; 

ich wie ein String prop nicht ausführen wollen. Ich möchte den Wert der Variablen durch Argumente an die Funktion tun dies

Antwort

3

So stellen Sie die Eigenschaft des Objekts senden:

collection[id][prop] = value; 
1

Das Problem wird prop: "ABBA" ist buchstäblich prop nicht die Variable Stütze nehmen. Wechseln Sie zu:

function updateRecords(id, prop, value) { 

    if(!collection[id].hasOwnProperty(prop) && value !== ""){ 
    collection[id][prop] = value; 
    } 
    return collection; 
} 

Dies löst auch ein anderes Problem, das Sie haben, was Sie das gesamte Objekt überschreiben, anstatt nur die Zieleigenschaft zu aktualisieren.

Verwandte Themen