问题描述:
一个链接和一个需要传参的对象自动拼接成需要的url字符串,例:
var url = 'baidu.com'
parmas = {
type: 'add',
id: '123456789',
name: 'aaa'
}
需要手动拼接成:
var url = `baidu.com?name=aaa&type=add&id=123456789`
如果参数较多的时候,拼接字符串就比较麻烦而且容易出错,错误难以排查,维护成本高。
以下是实现链接和对象自动拼接成需要的字符串的方法:
1、ES6写法:(会删除空字段)
const getUrlToStr = (url, params) => params
? url + '?' + Object.keys(params)
.filter(key => params[key] || params[key] === 0) // 删除无值的字段,可根据需要进行保留或删除
.map(key=>`${key}=${params[key]}`)
.toString().replace(/,/g, '&')
: url
2、ES5写法:(不会删除空字段)
function getUrlStr(url, params) {
if (!params) return url;
let result = url + "?";
params &&
Object.keys(params).forEach(
(item) => (result += `${item}=${params[item]}&`)
);
return result.slice(0, -1);
}
查看: