我有以下示例代码
var obj = { a: {b:1, c:3 }, d :{f:5}}
var string = "";
for(var key in obj){
for(var subkey in obj[key]){
string += subkey + "="+ obj[key][subkey] + "&";
//for last iteration "&" should not be added.
}
}
console.log(string);
输出
b=1&c=3&f=5&
所需输出
b=1&c=3&f=5
答案 0 :(得分:9)
另一种方法是:
var obj = { a: {b:1, c:3 }, d :{f:5}},
array = [];
for(var key in obj){
for(var subkey in obj[key]){
array.push(subkey + "="+ obj[key][subkey]);
}
}
console.log(array.join('&'));
答案 1 :(得分:4)
如果您要创建网址的查询部分,我会使用此处提供的解决方案: How to create query parameters in Javascript?
如果没有,只需删除编码部分:)
相关代码的副本:
// Usage:
// var data = { 'first name': 'George', 'last name': 'Jetson', 'age': 110 };
// var querystring = EncodeQueryData(data);
//
function EncodeQueryData(data)
{
var ret = [];
for (var d in data)
ret.push(encodeURIComponent(d) + "=" + encodeURIComponent(data[d]));
return ret.join("&");
}
答案 2 :(得分:2)
string = string.slice(0,-1)
答案 3 :(得分:1)
对于每次迭代,首先附加&
,但第一个除外。
var obj = { a: {b:1, c:3 }, d :{f:5}}
var string = "";
for(var key in obj){
for(var subkey in obj[key]){
if(string !== "") string += "&";
string += subkey + "=" + obj[key][subkey];
}
}