在不知道JavaScript对象的键的情况下,我如何将…
var obj = {
param1: 'something',
param2: 'somethingelse',
param3: 'another'
}
obj[param4] = 'yetanother';
…到…
var str = 'param1=something¶m2=somethingelse¶m3=another¶m4=yetanother';
...?
在不知道JavaScript对象的键的情况下,我如何将…
var obj = {
param1: 'something',
param2: 'somethingelse',
param3: 'another'
}
obj[param4] = 'yetanother';
…到…
var str = 'param1=something¶m2=somethingelse¶m3=another¶m4=yetanother';
...?
当前回答
如果你使用jQuery,这是它用来参数化GET XHR请求的选项:
$.param( obj )
http://api.jquery.com/jQuery.param/
其他回答
你可以使用jQuery的param方法:
var obj = { 参数1:“某物”, param2: 'somethingelse', 参数3:“另一个” } obj['param4'] = 'yetother'; var str = jQuery.param(obj); 警报; <script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”></script>
export const convertObjToUrlParams = (obj) =>
{
var paramString = '';
for (let key in obj)
{
if (obj[key] !== null && obj[key] !== undefined)
{
paramString += '&';
paramString += key + "=" + obj[key];
}
}
return paramString;
}
输出Ex: &firstName=NoDo&userId=2acf67ed-73c7-4707-9b49-17e78afce42e&email=n@n.dk&phoneNumber=12345678&password=123456
var str = "";
for (var key in obj) {
if (str != "") {
str += "&";
}
str += key + "=" + encodeURIComponent(obj[key]);
}
例如:http://jsfiddle.net/WFPen/
Object.toparams = function ObjecttoParams(obj)
{
var p = [];
for (var key in obj)
{
p.push(key + '=' + encodeURIComponent(obj[key]));
}
return p.join('&');
};
只是为了记录,如果你有一个支持ES6的浏览器,这里有一个减少的解决方案:
Object.keys(obj).reduce((prev, key, i) => (
`${prev}${i!==0?'&':''}${key}=${obj[key]}`
), '');
这里有一个正在运行的片段!
//仅用于测试目的 让obj = {param1: 12, param2: "test"}; //实际解决方案 let result = Object.keys(obj)。Reduce ((prev, key, i) => ( “$ {prev} ${我! = = 0 ?“&”:“}${关键}= $ {obj[主要]}’ ),“); //运行代码片段来显示发生了什么! console.log(结果);