将URL参数转换为JavaScript对象

将URL参数转换为JavaScript对象

给定带有参数的URL,任务是使用JavaScript将这些参数转换为JavaScript对象。我们将讨论几种技术。

以下是将URL参数转换为JavaScript对象的方法:

  • 使用replace()方法
  • 使用split()方法
  • 使用for … of循环

方法1:使用replace()方法

此方法在字符串中搜索一个定义的值或正则表达式,并返回一个带有替换定义值的新字符串。

语法:

string.replace(searchVal, newvalue)  

示例: 这个示例首先获取URL的参数部分,然后使用 replace() 方法 来形成一个对象。

let search = 'https://www.geeksforgeeks.org/?param_1=val_1&x=7&y=9';
console.log(search);
search = search.split('?')[1];
 
function GFG_Fun() {
    console.log('{"' + decodeURI(search)
        .replace(/"/g, '\\"').replace(/&/g, '","')
        .replace(/=/g, '":"') + '"}');
}
GFG_Fun()

输出

https://www.geeksforgeeks.org/?param_1=val_1&x=7&y=9
{"param_1":"val_1","x":"7","y":"9"}

方法2:使用split()方法

此方法用于将字符串拆分为子字符串数组,并返回新的数组。

语法:

string.split(separator, limit)  

示例: 这个示例使用了不同的方法来实现相同的功能。它先获取URL的参数部分,然后使用 replace()方法 来形成一个对象。

let search = 'https://www.geeksforgeeks.org/?param_1=val_1&x=7&y=9';
console.log(search);
search = search.split('?')[1];
 
function GFG_Fun() {
    console.log('{"' + search.replace(/&/g, '", "')
        .replace(/=/g, '":"') + '"}',
        function (key, value) {
            return key === "" ? value : decodeURIComponent(value)
        });
}
GFG_Fun()

输出

https://www.geeksforgeeks.org/?param_1=val_1&x=7&y=9
{"param_1":"val_1", "x":"7", "y":"9"} [Function (anonymous)]



方法3:使用for … of循环

  • 在这种方法中,我们使用Url.search来获取参数
  • 现在,将其作为参数传递给函数
  • 现在使用for … of循环来访问所有键和值

示例:

function paramsToObject(params) {
    const obj = {};
    const para = new URLSearchParams(params);
 
    for (const [key, value] of para) {
         
        if (obj.hasOwnProperty(key)) {
            if (Array.isArray(obj[key])) {
                obj[key].push(value);
            } else {
                obj[key] = [obj[key], value];
            }
        } else {
            obj[key] = value;
        }
    }
 
    return obj;
}
let search = 'https://www.geeksforgeeks.org/?param_1=val_1&x=7&y=9';
const url = new URL(search);
const params = paramsToObject(url.search);
console.log(params);

输出

{ param_1: 'val_1', x: '7', y: '9' }

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程