如何“加入”字典元素

时间:2016-10-27 10:01:56

标签: javascript

假设我有以下词典:

var d = {
  'foo': 0,
  'bar': 1
};

如何轻松将其转换为字符串?

foo=0&bar=1

是否有任何可以帮助我的内置方法?

5 个答案:

答案 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'

检查working example

答案 4 :(得分:0)

您可以使用reduce方法实现此目的(因为您将#34;将对象的值减少为单个字符串。

简洁的ES6示例可能如下所示:

Object.keys(d).reduce((a,b,i) => `${a}${i ? '&':''}${b}=${d[b]}`,'')