Ich muss ein Array von Objektliteralen wie folgt erstellen:
var myColumnDefs = [
{key:"label", sortable:true, resizeable:true},
{key:"notes", sortable:true,resizeable:true},......
In einer Schleife wie dieser:
for (var i = 0; i < oFullResponse.results.length; i++) {
console.log(oFullResponse.results[i].label);
}
Der Wert von key
sollte results[i].label
in jedem Element des Arrays stehen.
javascript
arrays
object-literal
Codecowboy
quelle
quelle
var obj = {
Bit überspringen, indem Sie einfach das Literal selbst drücken.var obj
, um den Code klarer zu machen. Natürlich können Sie sie überspringen. Sie können das gesamte Skript in einer Zeile schreiben, wenn Sie möchten :)RaYells Antwort ist gut - sie beantwortet Ihre Frage.
Es scheint mir jedoch, dass Sie wirklich ein Objekt erstellen sollten, das durch Beschriftungen mit Unterobjekten als Werte verschlüsselt ist:
Der obige Ansatz sollte viel schneller und idiomatischer sein als das Durchsuchen des gesamten Objektarrays nach einem Schlüssel für jeden Zugriff.
quelle
Sie können so etwas in ES6 tun.
quelle
Dies ist, was Array # Map gut kann
quelle
Das wird funktionieren:
quelle
In der gleichen Idee von Nick Riggs erstelle ich aber einen Konstruktor und schiebe ein neues Objekt in das Array, indem ich es benutze. Es vermeidet die Wiederholung der Schlüssel der Klasse:
quelle
Ich würde das Array erstellen und dann die Objektliterale daran anhängen.
quelle
quelle
[]
anstelle von zu initiierennew Array()
.Wenn Sie mit ES6 noch weiter als @tetra gehen möchten, können Sie die Object Spread-Syntax verwenden und Folgendes tun:
quelle