注:以下は、 「検索して置換しない」注の翻訳です。 その中で、著者は、クエリ文字列を最小限のプロセッサ時間でJavaScriptの配列に変換する方法について考察しています。 私のコメントはさらに斜体で記載されています。少し前の今日、私の友人であるMarc Grabanskiが質問を投げました:
foo=1&foo=2&foo=3&blah=a&blah=b
の形式のクエリ文字列をJavaScriptで最適な方法で
foo=1,2,3&blah=a,b
ように変換する方法? 彼は
その時点ですでに
彼自身の決定を下しており、何らかの方法で改善できるかどうか興味がありました。
私は少し考えて、次の解決策を提案しました。
関数圧縮(データ){
var q = {}、ret = "";
data.replace(/([^ =&] +)=([^&] *)/ g、関数(m、キー、値){
q [キー] =(q [キー]?q [キー] + "、": "")+値;
});
for(qのvarキー)
ret =(ret?ret + "&": "")+キー+ "=" + q [キー];
return ret;
}
webo.inで詳細を読む→