2017-10-10 80 views
0

我有填充的serializeArray()數據使用:附加鍵值對陣列

var compArr = $(':input[name="cc_text"]').serializeArray(); 

console.log(compArr)看起來像這樣:

0:{name: "cc_text", value: "spring 2016;"} 
1:{name: "cc_text", value: "fall 2016;"} 

我需要添加一個新條目,如code: "B007"code: "J007"分別分配到每個索引中,以便新陣列看起來像:

0:{name: "cc_text", value: "spring 2016;", code: "B007"} 
1:{name: "cc_text", value: "fall 2016;", code: "J007"} 

目前,我有一個for循環,如下所示:

for(var j = 0; j < countVar; j++) 
{ 
    compArr.push({code: $('#label_text_'+j).text()}) 
} 

結果我得到這個樣子的:

0:{name: "cc_text", value: "spring 2016;"} 
1:{name: "cc_text", value: "fall 2016;"} 
2:{code: "B007"} 
2:{code: "J007"} 

當我試圖做這樣的事情裏面循環:

compArr[j].push({code: $('#label_text_'+j).text()}) 

我得到錯誤compArr[j].push不存在推送功能。

有沒有辦法實現這一目標而無需重新創建一個新的數組並重新插入所有的數據,也許只是修改我如何填充初始serializeArray()

+0

是'code:「B007」和代碼:「J007」'也是從一個數組? – guradio

+0

不是。這是一個標籤文本。他標籤上的實際文字分別是'B007'和'J007',其中 – hello

+0

包括OP中的所有相關代碼,也是陣列的正確格式。 – guradio

回答

1

你試圖添加到一個對象,而不是推到數組。試試這個:

compArr[j].code = $('#label_text_'+j).text(); 
+0

正是我在找的東西。謝謝 – hello

1

您的compArr包含對象。看起來你想爲每個對象添加一個'code'屬性。要做到這一點,請通過compArr循環並將適當的代碼添加到每個對象。

for (var i = 0; i < compArr.length; i += 1) { 
    compArr[i].code = $('#label_text_'+i).text(); 
} 

上面的例子假定你有#label_text_0和#label_text_1元素包含你的代碼值。

+0

這也適用。謝謝。 – hello