假设我有以下词典:
var d = {
'foo': 0,
'bar': 1
};
如何轻松将其转换为字符串?
foo=0&bar=1
是否有任何可以帮助我的内置方法?
答案 0 :(得分:4)
不确定内置方法,但您只需执行
Object.keys( d ).map( function(key){ return key+"="+d[key] }).join("&") //outputs "foo=0&bar=1"
答案 1 :(得分:3)
如果您使用jQuery,请使用$.param(data, true);
或者,对于纯JavaScript,您可以使用
function serialize(obj) {
var str = [];
for(var p in obj)
if (obj.hasOwnProperty(p)) {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
return str.join("&");
}
serialize(data);
答案 2 :(得分:1)
var d = {
'foo': 0,
'bar': 1
};
var finalString = "";
for(var key in d){
finalString += key + "=" + d[key] + "&";
}
finalString = finalString.slice(0, -1);
console.log(finalString);

答案 3 :(得分:1)
使用减速器功能:
var obj = {
'foo': 0,
'bar': 1
};
var str = Object.keys(obj).reduce(function(acc, key, index) {
return acc + (index === 0 ? '' : '&') + key + '=' + obj[key];
}, '');
console.log(str) // => 'foo=0&bar=1'
答案 4 :(得分:0)
您可以使用reduce
方法实现此目的(因为您将#34;将对象的值减少为单个字符串。
简洁的ES6示例可能如下所示:
Object.keys(d).reduce((a,b,i) => `${a}${i ? '&':''}${b}=${d[b]}`,'')