長いタイトルですが、タイトル通りのことをやることになり、
スマートなやり方が思いつかず、結局ループを2回回す方法でやりました。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | var _form_data = new FormData(); var _q = location.search.replace('?', ''); var _qs = _q.split('&'); var _param_tmp1 = {}; // 同名パラメータが2つ以上あるかどうかをカウントするループ for(var i = 0; i < _qs.length; i++) {   var _kv = _qs[i].split('=');   if(_kv.length == 2) {     if(_param_tmp1[_kv[0]]) {       _param_tmp1[_kv[0]]++;     }     else {       _param_tmp1[_kv[0]] = 1;     }   } } // カウントが2つ以上なら後ろに[]をつけるループ for(var i = 0; i < _qs.length; i++) {   var _kv = qs[i].split('=');   if(_kv.length == 2) {     if(_param_tmp1[_kv[0]] == 1) {       _form_data.append(_kv[0], _kv[1]);     }     else {       _form_data.append(_kv[0] + '[]', _kv[1]);     }   } } | 
