背景
前端在调用后端GET请求时,url的接口名称和参数一般是字符串拼接的方式,为了避免字符串拼接时key值对应的value为null对后端的判断造成干扰,前端可以处理为value为null时该参数的key值省略不传。
编码实战
/**
* @function 参数拼接
* @param {object} obj 只支持非嵌套的对象
* @returns {string}
* @author 天心天地生 2020-1-15
*/
function params(obj) {
let result = '';
let item;
for (item in obj) {
if (obj[item] && String(obj[item])) {
result += `&${item}=${obj[item]}`;
}
}
if (result) {
result = '?' + result.slice(1);
}
return result;
}
const obj = {
name: '天心天地生',
age: '24',
msg: ''
}
const url = `/get/info/${this.params(obj)}`;
console.log(url); // > /get/info/?name=天心天地生&age=24