* 解析url中的所有参数信息 * @param url {String} 传入的地址url,默认当前访问页面的window.location.href * @returns { Object } 返回url参数所组成的Object数据对象,没有参数范会空 {} const parseQueryString = ( url = window .location.href ) => { const searchIndex = url. lastIndexOf ( '?' ); const search = url. substring (searchIndex + 1 ); if (searchIndex < 0 || !search) { return {} }; return JSON . parse ( `{" ${ decodeURIComponent (search).replace(/ "/g, '\\" ').replace(/&/g, ' "," ').replace(/=/g, ' ":" ')}"}`);
// 例子
console.log('当前链接中的参数:', parseQueryString());

如果url没有参数,会返回空{}, 如果没有用一些js代码库或者工具,判断对象为空这里也给一个方法,希望有用:

判断对象是否为空
* 判读对象是否为空 * @param {Object} obj 传入对象 * @returns 如果对象为空返回 true,不为空则为false const isEmptyObj = (obj) => { if (!obj) { return true; const objKeys = Object.keys(obj); if (objKeys.length > 0) { return false; return true;

使用时候请看好,对象为空返回true,不要判断反了

对象转换为URL的参数拼接方式

* @desc 对象序列化 * @param {Object} obj * @return {String} const stringfyQueryString = (obj) => { if (!obj) return ''; let pairs = []; for (let key in obj) { let value = obj[key]; if (value instanceof Array) { console.log('循环的内容', value); for (let i = 0; i < value.length; ++i) { pairs.push(encodeURIComponent(key + '[' + i + ']') + '=' + encodeURIComponent(value[i])); continue; pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key])); return pairs.join('&');
// 例子
    const paramObj = {
      name: 'zhangsan',
      age: 12,
      local: 'zhouer'
    console.log('转换完', stringfyQueryString(paramObj));

以上希望对你有所帮助

分类:
前端
标签: