js方法实现对象转url参数

3023 ℃

功能接口:多维数组中存在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: 'ipkd.cn'
	}
}, {
	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=ipkd.cn
console.log('抖音:', theLinkArr[2].url + objectToQuery(theLinkArr[2].obj))
//抖音: http://www.douyin.com?toutiao=123&xigua=234&douyin=557

js链接新增(修改)参数页面不刷新

es6语法遍历对象的几种方法介绍

vuejs获取链接参数to.query.name特殊符号+变成空格解决方法

es6语法利用函数将json字符串转为对象

介绍javascript获取url参数的四种方法?

标签: js, url参数, 多维数组, 对象, 链接参数

上面是“js方法实现对象转url参数”的全面内容,想了解更多关于 js 内容,请继续关注web建站教程。

当前网址:https://m.ipkd.cn/webs_2273.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

vuejs打印内容超过一屏自动分页
如何利用jQuery截取字符串后几位
织梦 Fatal error: Call to a member function..怎么办
html中的doctype是什么?
帝国CMS评论调用自定义字段的方法