2013-10-16 70 views
0

現有陣列我需要創建的JavaScript結構類型(複雜的模型)的列表使用ASDP.NET MVC3插入複數值在JavaScript

var myItems = new Array(@Model.Count());  
var CreatedItem; 
for (i = 1 ; i<= @Model.Count()-1;i++) 
{ 
    CreatedItem = { 
     'DayPartID': i, 
     'Name': $("#Name_"+i).val(), 
     'IsEnable': $("#IsEnable_"+i).val(), 
     'Time': $('#timepicker-'+ i).val() 
    }; 

    myItems.push(CreatedItem); 
    alert(myItems[i]); 
} 

問題是,我不能獲得「myItems」填充在重複結構「for」結束後正確。

+0

這是否正常工作? http://pastebin.com/TieyfEjF我錯誤地轉換了@ Neel的答案的代碼,但只是刪除了'localStorage'的東西。 – plalx

回答

0

你初始化您的數組,如:

var arr = new Array(2); 

然後你做:

arr.push("foo"); 

這會給你:

[ undefined, undefined, "foo" ] 

要麼改變initialaztion到一個空陣列如:

var myItems = []; 

還是不推,但設置,如:

myItems[i] = CreatedItem; 

此外,你的循環開始於1 - 這是奇怪的。更改爲:

for (i = 0 ; i < @Model.Count(); i += 1) { 
+0

不是像你的例子那樣簡單的列表「arr.push(」foo「);」,它很複雜:arr.push(「item1」,「item2」,「item7」); – Alynuzzu

+0

這並沒有改變任何東西。 'arr.push(「item1」,「item2」,「item7」);'與arr.push(「item1」)相同; arr.push( 「ITEM2」); arr.push( 「item7」);' – Halcyon