2010-03-12 3 views
2

Что я хочу сделать с объектом fs, так это добавить несколько элементов в свойство fs.items. Как я могу это сделать? Вы можете увидеть мою попытку ниже, очевидно, что это не сработает.JavaScript Object Question

Я новичок, легко идти на меня :)

Спасибо ...

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

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

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

Philippe имеет это - как для вашего решения, что вы Фактически это переназначение свойства элементов каждый раз. –

ответ

10

Вы можете использовать "толчок":

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

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

push() функция добавления записей к существующему массиву

+0

вы все избили меня до этого – 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} 
    ] 
}; 

Размещение новой строки произвольно, конечно.

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

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

, если вы хотите, чтобы добавить запись в массив, вы должны использовать .push или item[...]

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

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

Если вы знаете, предметы по определению вы можете встраивать их следующим образом:

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

Кроме того, вы можете использовать функцию push массива.

0

или даже ...

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

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

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

/* и */

alert(JSON.stringify(fs)); 

/* показывает */

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