假設我有以下的解釋:如何「加盟」字典元素
var d = {
'foo': 0,
'bar': 1
};
我怎麼能輕鬆地將其轉換爲字符串這樣嗎?
foo=0&bar=1
是否有任何內置方法可以幫助我?
假設我有以下的解釋:如何「加盟」字典元素
var d = {
'foo': 0,
'bar': 1
};
我怎麼能輕鬆地將其轉換爲字符串這樣嗎?
foo=0&bar=1
是否有任何內置方法可以幫助我?
如果您在使用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);
不確定內置的方法,但你可以簡單地做
Object.keys(d).map(function(key){ return key+"="+d[key] }).join("&") //outputs "foo=0&bar=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);
您可以使用reduce
方法實現此目的(因爲您將對象的值「減少」爲單個字符串。
簡明ES6例子可能是這樣的:
Object.keys(d).reduce((a,b,i) => `${a}${i ? '&':''}${b}=${d[b]}`,'')
使用減速功能:
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'
你可以使用JSON.stringify嗎? – user2182349
@ user2182349不可以。我需要像我提到的格式字符串 – FrozenHeart
有FormData ... – user2182349