📜  javascript urlsearchparams 到对象 - Javascript (1)

📅  最后修改于: 2023-12-03 14:42:27.851000             🧑  作者: Mango

Javascript中的URLSearchParams对象

在Javascript中,我们可以使用URLSearchParams对象来解析和操作URL的查询参数部分。此对象提供了一系列方法帮助我们轻松地获取、设置和更新URL查询参数。

URLSearchParams的基本使用

我们可以通过实例化URLSearchParams对象来访问URL查询参数。例如,下面的代码片段创建了一个URLSearchParams对象并将其作为对象myParams的属性:

const urlParams = new URLSearchParams(window.location.search);
const myParams = {
    id: urlParams.get('id'),
    category: urlParams.get('category')
};
console.log(myParams);

这将打印输出一个包含URL查询参数的Javascript对象。

URLSearchParams对象的常见方法

URLSearchParams对象提供了许多有用的方法,用于从URL查询参数中检索、设置、添加和删除值。下面是一些常见的方法:

get()
const urlParams = new URLSearchParams('id=123&category=javascript');
const id = urlParams.get('id'); // '123'
const category = urlParams.get('category'); // 'javascript'
set()
const urlParams = new URLSearchParams('id=123&category=javascript');
urlParams.set('category', 'web development');
console.log(urlParams.toString()); // 'id=123&category=web%20development'
append()
const urlParams = new URLSearchParams('id=123');
urlParams.append('category', 'javascript');
console.log(urlParams.toString()); // 'id=123&category=javascript'
delete()
const urlParams = new URLSearchParams('id=123&category=javascript');
urlParams.delete('category');
console.log(urlParams.toString()); // 'id=123'
URLSearchParams对象到Javascript对象的转换

有时候我们可能需要将URLSearchParams对象转换为Javascript对象来进行进一步的处理。下面是一个将URLSearchParams对象转换为Javascript对象的函数:

function urlSearchParamsToObject(params) {
    return [...params].reduce((acc, [paramKey, paramValue]) => {
        if (acc[paramKey] === undefined) {
            acc[paramKey] = paramValue;
        } else if (Array.isArray(acc[paramKey])) {
            acc[paramKey].push(paramValue);
        } else {
            acc[paramKey] = [acc[paramKey], paramValue];
        }

        return acc;
    }, {});
}

const urlParams = new URLSearchParams('id=123&category=javascript&tag=js&tag=web');
const myObject = urlSearchParamsToObject(urlParams);
console.log(myObject);

这将打印输出以下Javascript对象:

{
    "id": "123",
    "category": "javascript",
    "tag": ["js", "web"]
}
结论

URLSearchParams对象对于在Javascript中对URL进行查询参数的操作非常有用。它可以帮助我们简化数据的解析和操作,同时也提供了便于使用的方法来获取、设置、添加和删除URL查询参数。