2010-03-12 7 views
2

Ce que je veux faire avec l'objet fs est d'ajouter plusieurs "items" à la propriété fs.items. Comment puis-je faire cela? Vous pouvez voir ma tentative ci-dessous, évidemment, cela ne fonctionne pas.JavaScript Object Question

Je suis un débutant, aller simple sur moi :)

Merci ...

var fs = { 
    name:'test', 
    items:[] 
}; 

fs.items = { 
    name:'item1', 
    value:1 
}; 

fs.items = { 
    name:'item2', 
    value:2 
} 
+0

Philippe a - comme pour votre solution, ce que vous En réalité, nous réaffectons la propriété items à chaque fois. –

Répondre

10

Vous pouvez utiliser "push":

fs.items.push({ 
    name:'item1', 
    value:1 
}); 

fs.items.push({ 
    name:'item2', 
    value:2 
}); 

La fonction push() ajoutera des entrées à un ensemble existant

+0

vous m'avez tous battu – mcgrailm

1
fs.items.push('item1', 'item2'); // fs.items is now ['item1', 'item2'] 
0
var fs = { 
    name:'test', 
    items: 
    [ 
    {name:'item1', value:1}, 
    {name:'item2', value:2} 
    ] 
}; 

Le placement de la nouvelle ligne est bien sûr arbitraire.

0
fs.items[0] = { 
    name:'item1', 
    value:1 
}; 

fs.items[1] = { 
    name:'item2', 
    value:2 
} 
1

si vous voulez ajouter une entrée à un tableau, vous devez utiliser .push ou item[...]

fs.items.push({ 
    name:'item1', 
    value:1 
}); 

fs.items['item2'] = { 
    name:'item2', 
    value:2 
}); 
1

Si vous connaissez les éléments de définition, vous pouvez les inline comme ceci:

var fs = { 
    name:'test', 
    items:[ 
     { name: 'item1', value: 1}, 
     { name: 'item2', value: 2} 
    ] 
}; 

Sinon, vous pouvez utiliser la fonction de poussée de tableau.

0

ou même ...

javascript: 
var fs = { 
    name:'test', 
    items:[] 
}; 

fs.items[fs.items.length] = { 
    name:'item1', 
    value:1 
}; 

fs.items[fs.items.length] = { 
    name:'item2', 
    value:2 
}; 

/* et */

alert(JSON.stringify(fs)); 

/* affiche */

{"name":"test","items":[{"name":"item1","value":1},{"name":"item2","value":2}]}