URLのパラメータでid=1&id=2
みたいな文字列を作りたい
URLSearchParamsのドキュメント
URLSearchParams - Web API | MDN
重複する検索パラメータ
の項で同じキーの値が複数ある場合、クエリ文字列からパースして値を取得する方法は載っていたがクエリ文字列を生成する方法は載っていなかった
普通に配列渡したらよしなにやってくれるかと思ったらそうはいかなかった
> ids = [1,2,3]
> search = new URLSearchParams({ids})
URLSearchParams { 'ids' => '1,2,3' }
> search.toString()
'ids=1%2C2%2C3'
カンマ区切りにされてしまうのね
参考
> ids = [1,2,3]
> search = new URLSearchParams(ids.map(s => ['id', s]))
URLSearchParams { 'id' => '1', 'id' => '2', 'id' => '3' }
> search.toString()
'id=1&id=2&id=3'
これで良いらしい
他のパラメータも含める場合
> ids = [1,2,3]
> search = new URLSearchParams(ids.map(s => ['id', s]).concat([['a', 'a']]))
URLSearchParams { 'id' => '1', 'id' => '2', 'id' => '3', 'a' => 'a' }
> search.toString()
'id=1&id=2&id=3&a=a'
勉強になりました