當使用jQuery的窗體上的serializeArray()
我得到一個數組,看起來像這樣:轉換2名/值對象的數組鍵一個名稱/值
[{
"name": "name",
"value": "1_filename.jpg"
}, {
"name": "caption",
"value": "1_caption"
}, {
"name": "name",
"value": "2_filename.jpg"
}, {
"name": "caption",
"value": "2_caption"
}, {
"name": "name",
"value": "3_filename.jpg"
}, {
"name": "caption",
"value": "3_caption"
}, {
"name": "name",
"value": "4_filename.jpg"
}, {
"name": "caption",
"value": "4_caption"
}]
但我的代碼的其餘部分預計的東西更多這樣的:
[{
"name": "1_filename.jpg",
"caption": "1_caption"
}, {
"name": "2_filename.jpg",
"caption": "2_caption"
}, {
"name": "3_filename.jpg",
"caption": "3_caption"
}, {
"name": "4_filename.jpg",
"caption": "4_caption"
}]
我是新來操縱數組和對象這樣的,我不知道是否已經有是所使用的第一個轉換爲類似第二個例子東西的約定。
我的第一個猜測是迭代2並將它們推送到一個新的對象。我試着迭代一個並檢查名字,但我遇到了一些麻煩,確保名稱和標題保持正確。
var output = [];
for (var i = 0; i < input.length; i += 2) {
output.push({ name: input[i].value, caption: input[i + 1].value });
}
這顯然是僵硬的附帶條件的假設,對象的順序將nameN:
怎麼看起來像之前的原始數據你調用'serializeArray()'? –