Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将javascript字典转换为编码的url字符串?_Javascript - Fatal编程技术网

如何将javascript字典转换为编码的url字符串?

如何将javascript字典转换为编码的url字符串?,javascript,Javascript,我想买点像这样的东西 ?key=value?key=value 从一本js字典里查出来的 { key:value, key:value } 如果使用jQuery,则可以使用: 否则,下面是一个函数: function serialize(obj) { var str = []; for(var p in obj) str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); ret

我想买点像这样的东西

?key=value?key=value
从一本js字典里查出来的

{
    key:value,
    key:value
}

如果使用jQuery,则可以使用:

否则,下面是一个函数:

function serialize(obj) {
  var str = [];
  for(var p in obj)
     str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
  return str.join("&");
}
alert(serialize({test: 12, foo: "bar"}));

ECMAScript 2016中的相同内容:

let params = { width:1680, height:1050 };
// convert object to list -- to enable .map
let data = Object.entries(params);
// encode every parameter (unpack list into 2 variables)
data = data.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`);
// combine into string
let query = data.join('&');
console.log(query); // => width=1680&height=1050
或者,作为单衬里:

let params = { width:1680, height:1050 };
Object.entries(params).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&');
// => "width=1680&height=1050"

现在有一种更简单的方法来实现这一点:

URLSearchParams
的API是


我想你的意思是
?key=value&key=value
:)这能回答你的问题吗?使用:
var str=$.param(params)。您也只能使用toString方法转换参数:
var url=new URLSearchParams(params.toString()不支持的IE11根据这项工作,谢谢!你能解释一下向后的重音符号和美元符号吗?我以前没有见过这种情况。@kloddant它与“或”相同,只是可以在其中嵌入表达式。例如
text${1+1}
//将输出“text 2”
let params = { width:1680, height:1050 };
Object.entries(params).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&');
// => "width=1680&height=1050"
var url = new URL('https://example.com/');
url.search = new URLSearchParams({blah: 'lalala', rawr: 'arwrar'}); 
console.log(url.toString()); // https://example.com/?blah=lalala&rawr=arwrar