simple-utils-js
Version:
前端,前端开发,前端框架,web前端,前端面试题,技术文档,学习,面试,JavaScript,js,ES6,TypeScript,vue,python,css3,html5,Node,git,github,markdown
30 lines (27 loc) • 761 B
JavaScript
/**
* @description:
* @param {*} query
* @return {*}
*/
const parse = (query = {}) => {
return Object.keys(query)
.filter((key) => !isEmpty(query[key]))
.reduce((result, key) => {
const value = query[key];
// in查询特殊处理
if (Array.isArray(value) && !isEmpty(value)) {
return `${result}&${value.reduce(
(val, cVal) => `${val ? `${val}&` : val}${key}=${cVal}`,
''
)}`;
}
// between查询做特殊处理
if (typeof value === 'object' && !isEmpty(value)) {
const [start, end] = value;
return `${result}&${key}[]=${start}&${key}[]=${end}`;
}
return `${result}&${key}=${value}`;
}, '')
.replace(/^&/, '?');
};
module.exports = parse