função deparam em JavaScript – oposto de $ .param

Um pouco mais limpo no JSFiddle – http://jsfiddle.net/drzaus/8EE8k/

Freqüentemente, em Javascript, você deseja parametrizar um mapa (hash | dicionário | qualquer) para criar uma string de URL, e o jQuery tem a função de utilitário $ .param para ajudá-lo a fazer isso:

var urlQueryString = $.param({
action
: "create",
what
: "ProductEntry",
color
: "green",
size
: "medium"
});

rendimentos

action=create&what=ProductEntry&color=green&size=medium

Mas o que acontece quando você quer o contrário? jQuery não tem uma função “deparam”. Aposto que outras bibliotecas de utilitários têm , e provavelmente são mais robustas, mas é divertido escrever a sua própria.

deparam = function (querystring) {
// remove any preceding url and split
querystring
= querystring.substring(querystring.indexOf('?')+1).split('&');
var params = {}, pair, d = decodeURIComponent, i;
// march and parse
for (i = querystring.length; i > 0;) {
pair
= querystring[--i].split('=');
params[d(pair[0])] = d(pair[1]);
}

return params;
};//-- fn deparam