2017-03-15 4 views
1

Einfach mit diesem stecken, würde jede Hilfe geschätzt werden.verschachtelte Werte zum assoziativen Array hinzufügen - JS

Ich habe ein assoziatives Array wie folgt:

var player = { 
    source: { 
    item1: value, 
    item2: value, 
    item3: { 
     item3-1: value 
    } 
    }, 
    playback: { 
    parameter1: value, 
    parameter2: value, 
    } 
} 

Was ich versuche zu tun, Werte in player.source wie folgt hinzu:

player.source.item4.item4-1 = 'something' 

so dass player.source aussieht dies:

source: { 
    item1: value, 
    item2: value, 
    item3: { 
     item3-1: value 
    }, 
    item4: { 
     item4-1: 'something', 
    }, 
    }, 

Vielen Dank im Voraus für Ihre Hilfe.

+2

Es gibt nicht so etwas wie ein „assoziatives Array“ in JavaScript. Was Sie haben, ist ein Objekt, und Sie fügen Eigenschaften hinzu. – meagar

Antwort

1

Ich bin mir nicht sicher, ob es nicht zu kompliziert ist, aber scheint zu funktionieren.

var player = {source:{item1:"value",item2:"value",item3:{"item3-1":"value"}},playback:{parameter1:"value",parameter2:"value"}}, 
 
    obj = { 
 
     'item4-1': 'something' 
 
    }; 
 

 
    player.source.item4 = obj; 
 
    console.log(player);

+0

Schließen .. Ich möchte eine neue Eigenschaft 'item4' unter 'source' erstellen und Eigenschaften hinzufügen. – ymdahi

+0

@ymdahi Ich wusste, dass ich es zu kompliziert gemacht habe. Fest. –

+0

genial, dies jetzt auszuprobieren – ymdahi

1

Sie können es so machen - erstellen Sie einfach eine Funktion für allgemein eine Eigenschaft/Wert auf ein Objekt hinzufügen. Wenn die Eigenschaft bereits existiert, überschreibt sie nur den Wert.

var value = 5; 
 
var player = { 
 
    source: { 
 
    item1: value, 
 
    item2: value, 
 
    item3: { 
 
     "item3-1": value 
 
    } 
 
    }, 
 
    playback: { 
 
    parameter1: value, 
 
    parameter2: value, 
 
    } 
 
} 
 

 
function addProperty(obj, categoryName, value) { 
 
    obj[categoryName] = value; 
 
    return obj; 
 
} 
 

 
addProperty(player.source, "item4", addProperty({}, "item4-1", value)); 
 
console.log(player);

Um spätere Eigenschaften/Werte hinzufügen, können Sie die neu erstellten Objekte auf Ihrem Objekt zugreifen wie so:

addProperty(player.source.item4, "item4-2", 6); 
addProperty(player.source.item4, "item4-3", 7); 
// etc... 
Verwandte Themen