2024年07月22日 建站教程
功能接口:多维数组中存在obj对象参数,每个对象存在不同名称的参数,把obj对象转换成url地址参数格式跳转到新的链接上。
1、数组:
var theLinkArr = [{
name: '百度',
url: 'http://wwww.baidu.com',
obj: {
code: 0511,
level: 2
}
}, {
name: '淘宝',
url: 'http://wwww.baidu.com',
obj: {
query: 'lmcjl.com'
}
}, {
name: '抖音',
url: 'http://www.douyin.com',
obj: {
toutiao: 123,
xigua: 234,
douyin: 557
}
}]
2、方法:
function objectToQuery() {
let obj = arguments[0];
let prefix = arguments[1];
if (typeof obj !== "object") return "";
const attrs = Object.keys(obj);
return attrs.reduce((query, attr, index) => {
if (index === 0 && !prefix) query += "?";
if (typeof obj[attr] === "object") {
const subPrefix = prefix ? `${prefix}[${attr}]` : attr;
query += this.objectToQuery(obj[attr], subPrefix);
} else {
if (prefix) {
query += `${prefix}[${attr}]=${obj[attr]}`;
} else {
query += `${attr}=${obj[attr]}`;
}
}
if (index !== attrs.length - 1) query += "&";
return query;
}, "");
}
3、结果输出
console.log('百度:', theLinkArr[0].url + objectToQuery(theLinkArr[0].obj))
//百度: http://wwww.baidu.com?code=329&level=2
console.log('淘宝:', theLinkArr[1].url + objectToQuery(theLinkArr[1].obj))
//淘宝: http://wwww.baidu.com?query=lmcjl.com
console.log('抖音:', theLinkArr[2].url + objectToQuery(theLinkArr[2].obj))
//抖音: http://www.douyin.com?toutiao=123&xigua=234&douyin=557
本文链接:http://so.lmcjl.com/news/8965/