2012-12-05 32 views
0

我試圖創建一個多維數組值壓入特定元素的特定元素:推進價值在陣列

var rate_info = []; 
rate_info[0].push($("#title-textarea"+id).val()); 
rate_info[0].push($("select[name=category"+id+"]").val()); 
rate_info[0].push($("select[name=subcategory"+id+"]").val()); 
... 
data: { 
    "rate_info" : rate_info, 
}, 
... 

但是這打破了我的劇本,我不知道我在做什麼錯

+1

請解釋「打破我的腳本」部分。什麼是錯誤?它在哪裏失敗? – ryadavilli

+0

當我嘗試沒有創建多維數組(rate_info.push而不是rate_info [0])它的工作原理。但是我想將值推入位置[0]處的rate_info,因爲我在下一次迭代中得到了mroe值,進入了rate_info [1] 2 3等。 – user1683645

回答

4

沒有必要建立索引,只是push到陣列:

rate_info.push($("#title-textarea"+id).val()); 
rate_info.push($("select[name=category"+id+"]").val()); 
rate_info.push($("select[name=subcategory"+id+"]").val()); 

否則,你需要首先創建一個新的陣列能推動要素是:

var rate_info = [ [] ]; 
rate_info[0].push($("#title-textarea"+id).val()); 
+1

OP提到了多維數組。我猜OP是在這裏使用一個數組的數組,這就是爲什麼索引。 – ryadavilli

+1

+1如果你想使它多維'rate_info.push(some_array)' –

+0

好吧,我用這個解決方案創建數組,每次迭代並推入到rate_info數組中。謝謝! – user1683645

2

當你使用,你需要確保rate_info[0]是一個數組,所以它可能push給它一個多維數組,即

rate_info[0] = []; 

試圖做push調用之前。目前您正嘗試pushundefined