You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将URLSearchParams批量转换为普通JavaScript对象?

将URLSearchParams转换为普通对象的几种方法

要自动把URLSearchParams实例转换成包含所有参数的普通对象,不用手动逐个赋值,有几种简单的实现方式:

方法1:使用Object.fromEntries()(推荐,ES2019+)

这是最简洁的方式,直接利用URLSearchParams的可迭代特性:

const searchParams = req.nextUrl.searchParams;
const paramsObj = Object.fromEntries(searchParams);
// 示例输出:{ title: '1' }

这个方法会自动遍历所有参数键值对,一次性转换成对象,完美适配任意数量的参数。

方法2:手动遍历(兼容旧环境)

如果需要支持不兼容ES2019的环境,可以手动遍历URLSearchParams的键值对:

const searchParams = req.nextUrl.searchParams;
const paramsObj = {};

for (const [key, value] of searchParams) {
  paramsObj[key] = value;
}

效果和Object.fromEntries()一致,只是写法稍显繁琐。

处理多值参数(可选)

如果URL中存在同名的多值参数(比如?tag=js&tag=react),上面的方法会覆盖之前的值。如果需要把这类参数转换成数组,可以修改遍历逻辑:

const searchParams = req.nextUrl.searchParams;
const paramsObj = {};

for (const [key, value] of searchParams) {
  if (paramsObj.hasOwnProperty(key)) {
    // 若已存在该键,转为数组后追加新值
    if (!Array.isArray(paramsObj[key])) {
      paramsObj[key] = [paramsObj[key]];
    }
    paramsObj[key].push(value);
  } else {
    paramsObj[key] = value;
  }
}
// 示例输出:{ tag: ['js', 'react'] }

内容的提问来源于stack exchange,提问作者mahdi noori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 08:34:57