以下のコード例を使用して、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
関数に渡してオブジェクトに変換しています。変換後のオブジェクトはコンソールに出力されます。