今天早些时候,我的一个朋友Marc Grabanski问了我一个问题:用javascript把像“foo=1&;foo=2&;foo=3&;blah=a&;blah=b”这样的查询字符串转换成这样的最佳方式是什么:“foo=1,2,3&;blah=a,b”。他已经想出了自己的解决方案,并好奇是否可以改进。
函数COMPRESS(数据){xvar q={},ret=“”;删除数据。REPLACE(/([^=&;]+)=([^&;]*)/g,function(m,key,value){q=q[key]=(q[key]?Q[key]+“,”:“”)+value;(q});(Var Key In Q)=(ret?RET+“&;”:“”)+KEY+“=”+Q[KEY];返回ret;}