我試圖生成JavaScript對象數組urlstring,如:如何將對象數組轉換爲url字符串?
var array = [{'name': 'foo', 'value': '2'},
{'name': 'foo', 'value': '2,8'},
{'name': 'foo', 'value': '2,10,3'}
];
// url ==> foo=2&foo=2,8&foo=2,10,3
我試圖生成JavaScript對象數組urlstring,如:如何將對象數組轉換爲url字符串?
var array = [{'name': 'foo', 'value': '2'},
{'name': 'foo', 'value': '2,8'},
{'name': 'foo', 'value': '2,10,3'}
];
// url ==> foo=2&foo=2,8&foo=2,10,3
你可以做到這一點
var url = "";
array.forEach(function(e){
url += e.name + "=" + e.value + "&";
});
url = url.trim("&");
你會通過陣列需要循環,確定數組項是否在第一或沒有(這樣他們將與&符號分隔,並使用JSON字段名。
var queryString = "";
for (var i = 0; i++; i < array.length) {
if (i > 0) {
queryString = queryString + "&";
}
queryString = queryString + array[i]["name"] + "=" + array[i]["value"];
}
爲了安全起見,你要編碼的合作mponent件:
var array = [{'name': 'foo', 'value': '2'},
{'name': 'foo', 'value': '2,8'},
{'name': 'foo', 'value': '2,10,3'}
];
var parts = [];
for (var i = 0; i < array.length; ++i)
parts.push(encodeURIComponent(array[i].name) + '=' +
encodeURIComponent(array[i].value));
var url = parts.join('&');
console.log(url);
試試這個代碼:
var array = [{'name': 'foo', 'value': '2'},
{'name': 'foo', 'value': '2,8'},
{'name': 'foo', 'value': '2,10,3'}
];
var output = "";
for(var i = 0; i < array.length; i++){
output = output + array[i].name+"="+array[i].value+"&"
}
output = output.substring(0, output.length-1);
alert(output)
這裏fiddle
無需循環和輔助瓦爾,陣列內建的方法去做。
> array.map(p => p.name + '=' + p.value).join('&')
'foo=2&foo=2,8&foo=2,10,3'
> array.map(function(param){
return param.name + '=' + param.value
}).join('&')
'foo=2&foo=2,8&foo=2,10,3'
安全使用(但預計不會OP的輸出):
> array.map(p => encodeURIComponent(p.name) + '=' + encodeURIComponent(p.value)).join('&')
'foo=2&foo=2%2C8&foo=2%2C10%2C3'
我相信這是可能的,隨着一點點努力。你有什麼嘗試? – 2014-11-03 15:20:57
我試過$ .param(數組)但不是不工作 – 2014-11-03 15:22:27