我想将JavaScript对象数组生成为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对象数组生成为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
为了安全起见,您需要对组件部分进行编码:
const array = [
{'name': 'foo', 'value': '2'},
{'name': 'foo', 'value': '2,8'},
{'name': 'foo', 'value': '2,10,3'}
];
const parts = array.map((param) => {
return(
encodeURIComponent(param.name) + '=' +
encodeURIComponent(param.value)
);
});
const url = parts.join('&');
console.log(url);
var url = "";
array.forEach(function(e){
url += e.name + "=" + e.value + "&";
});
url = url.trim("&");
var queryString = "";
for ( var i = 0; i++; i < array.length ) {
if ( i > 0 ) {
queryString = queryString + "&";
}
queryString = queryString + array[i]["name"] + "=" + array[i]["value"];
}
Try this code:
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)
不需要循环和辅助变量,数组内置方法可以实现。
> 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'
安全使用(但不是期望的操作员输出):
> array.map(p => encodeURIComponent(p.name) + '=' + encodeURIComponent(p.value)).join('&')
'foo=2&foo=2%2C8&foo=2%2C10%2C3'