使用reduce的Javascript对象查询字符串

And*_*edo 1 javascript reduce object

我无法将reduce应用于Object以查询字符串格式获取它.

我要这个:

> var obj = {a: 1, b: "213123", c: null, d:false}
> obj2querystring(obj);
a=1&b=213123&c=null&d=false
Run Code Online (Sandbox Code Playgroud)

到目前为止,我得到的结果是:

Object.keys(obj).reduce(function(prev, curr){
    return prev + '&' + curr + '=' + obj[curr];
}, '');
Run Code Online (Sandbox Code Playgroud)

这给了我:

&a=1&b=213123&c=null&d=false
Run Code Online (Sandbox Code Playgroud)

是否有更简单的方法来实现这一点,而不必添加initialValue并删除&以后的?

Dan*_*nez 6

而不是做一个reduce更干净的方式将是mapjoin.

Object.keys(obj).map(function(x){
    return x + '=' + obj[x];
}).join('&');
Run Code Online (Sandbox Code Playgroud)
  • map make和array如下:["a=1", "b=213123", "c=null", "d=false"]
  • join将其转换为查询字符串:a=1&b=213123&c=null&d=false