JSFiddle - React, Tailwind, and code Playground
JavaScript
// Encode an object to an url string
// This function return the search part, begining with "?"
// Use: $.encodeURL({var: "test", len: 1}) returns ?var=test&len=1
(function ($) {
$.encodeURL = function (object) {
// recursive function to construct the result string
function createString(element, nest) {
if (element === null) return '';
if ($.isArray(element)) {
var count = 0,
url = '';
for (var t = 0; t < element.length; t++) {
if (count > 0) url += '&';
url += nest + '[]=' + element[t];
count++;
}
return url;
} else if (typeof element === 'object') {
var count = 0,
url = '';
for (var name in element) {
if (element.hasOwnProperty(name)) {
if (count > 0) url += '&';
url += createString(element[name], nest + '.' + name);
count++;
}
}
return url;
} else {
return nest + '=' + element;
}
}
var url = '?',
count = 0;
// execute a createString on every property of object
for (var name in object) {
if (object.hasOwnProperty(name)) {
if (count > 0) url += '&';
url += createString(object[name], name);
count++;
}
}
return url;
};
})(jQuery);
var object = {
var: "test", other: {
obj: {
prop1: "test2",
prop2: "test3"
},
length: 2,
list: ["a", "b", "c"]
}
};
console.log('Testing with...