mirror of
https://github.com/ialley-workshop-open/uni-halo.git
synced 2025-05-19 01:50:15 +09:00
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
/**
|
||
* 对象转换为url参数形式
|
||
* @param {Object} param 将要转换为URL参数的字符串对象
|
||
* @param {String} key URL 参数字符串的前缀
|
||
* @param {Boolean} encode 是否进行URL编码,默认为true
|
||
* @return {String} URL参数字符串
|
||
*/
|
||
export function jsonToUrlParams(param, key, encode) {
|
||
if (param == null) return '';
|
||
let paramStr = '';
|
||
let t = typeof(param);
|
||
if (t == 'string' || t == 'number' || t == 'boolean') {
|
||
paramStr += '&' + key + '=' + ((encode == null || encode) ? encodeURIComponent(param) : param);
|
||
} else {
|
||
for (var i in param) {
|
||
var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i);
|
||
paramStr += jsonToUrlParams(param[i], k, encode);
|
||
}
|
||
}
|
||
return paramStr;
|
||
}
|
||
|
||
|
||
/**
|
||
* @param {Array} actual
|
||
* @returns {Array}
|
||
*/
|
||
export function cleanArray(actual) {
|
||
const newArray = []
|
||
for (let i = 0; i < actual.length; i++) {
|
||
if (actual[i]) {
|
||
newArray.push(actual[i])
|
||
}
|
||
}
|
||
return newArray
|
||
}
|
||
|
||
|
||
/**
|
||
* json对象转Url参数2
|
||
* @param {Object} json
|
||
* @returns {Array}
|
||
*/
|
||
export function jsonToUrlParams2(json) {
|
||
if (!json) return ''
|
||
return cleanArray(
|
||
Object.keys(json).map(key => {
|
||
if (json[key] === undefined) return ''
|
||
return encodeURIComponent(key) + '=' + encodeURIComponent(json[key])
|
||
})
|
||
).join('&')
|
||
}
|