klamerki {}
to obiekt.
z kolei nawiasy kwadratowe []
to tablica (która technicznie też jest obiektem w JS, tym niemniej na potrzeby tego problemu można przyjąć, że tablica to coś innego od obiektu)
składnia obiektu:
{
foo: 123,
bar: 456
}
składnia tablicy:
[123, 456]
[{"Address": "Wspolna 2", "City": "Warszawa", "Address": "Zielona 5", "City": "Warszawa" }] }
to tak nie zadziała. W obiekcie każda właściwość może wystąpić tylko raz. Jeśli masz dwa razy taką samą właściwość, to nadpisze starą, czyli:
{ Address: 'Zielona 5', City: 'Warszawa' }
to, co możesz zrobić, to mieć tablicę obiektów:
[{"Address": "Wspolna 2", "City": "Warszawa"}, {"Address": "Zielona 5", "City": "Warszawa" }] }
zwróc uwagę na to, w których miejscach są klamerki, mamy coś takiego w skrócie:
[{},{}]
czyli tablica zawierająca 2 obiekty.
Następnie chcę uzupełnić Address i City z tym, że chcę mieć możliwość dodawania więcej adresów niż jeden.
Jeśli chcesz później dodać, to robisz tak:
Users.Data.push({Address: "Wspólna 3", City: "Warszawa"});
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push
zakładając mutowalność (w sensie, że zmieniasz obiekt w miejscu)
FirstName
jest to subiektywne i zależne od języka programowania i konwencji, tym niemniej w JS przyjęło się (większość programistów tak pisze w sensie), że właściwości obiektów pisze się z małej litery, czyli bardziej firstName
. Szczególnie, że zmienne już masz w tej konwencji, więc jeśli zmienisz na małe litery na początku, to można będzie zastosować skrót i zamiast:
var Users = {
id: userID,
firstName: firstName,
lastName: lastName,
data: [
{
address: address,
city: city
}
]
}
napisać:
var Users = {
id: userID,
firstName,
lastName,
data: [
{
address,
city,
}
]
}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#property_definitions