JavaScriptのSearchParamsオブジェクトをオブジェクトに変換する方法


以下のコード例を使用して、SearchParamsオブジェクトをオブジェクトに変換する簡単な方法を説明します。

function searchParamsToObject(searchParams) {
  const obj = {};
  for (let [key, value] of searchParams) {
    if (obj[key]) {
      if (Array.isArray(obj[key])) {
        obj[key].push(value);
      } else {
        obj[key] = [obj[key], value];
      }
    } else {
      obj[key] = value;
    }
  }
  return obj;
}
// 使用例
const url = new URL('https://example.com/?name=John&age=25&hobbies=reading&hobbies=swimming');
const searchParams = new URLSearchParams(url.search);
const obj = searchParamsToObject(searchParams);
console.log(obj);

上記のコードでは、searchParamsToObjectという関数を定義しています。この関数はSearchParamsオブジェクトを受け取り、通常のJavaScriptオブジェクトに変換します。変換後のオブジェクトは、クエリパラメータのキーと値を保持し、キーが重複する場合には値を配列として扱います。

上記の使用例では、URLからSearchParamsオブジェクトを作成し、それをsearchParamsToObject関数に渡してオブジェクトに変換しています。変換後のオブジェクトはコンソールに出力されます。