有没有办法转换这个对象:
{
lang: 'en-us',
episode: 12
}
转换为具有以下格式的字符串?
"lang=en-us&episode=12"
很像将对象映射到查询字符串,其中每个属性都是一个查询参数。
我可以这样做:
var parameters = [];
for(var prop in obj)
parameters.push(prop + '=' + obj[prop]);
return parameters.join('&');
但我一直在寻找单线解决方案。这可能吗?
PS:我无法使用 jQuery 及其任何实用函数。该解决方案必须采用纯 JavaScript。
最佳答案
您可以使用Array.prototype.map
关于 Object.keys
数组:
var data = {"lang": "en-us", "episode": 12};
var str = Object.keys(data).map(function (key) {
return "" + key + "=" + data[key]; // line break for wrapping only
}).join("&");
console.log(str);
使用 ES6,这变得更加简洁:
var data = {"lang": "en-us", "episode": 12};
var str = Object.keys(data).map(key => `${key}=${data[key]}`).join("&");
console.log(str);
关于javascript - 在一行中将对象映射到 key=value 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32464948/