JS对象转URL参数

代码:

/**
 * param 将要转为URL参数字符串的对象
 * key URL参数字符串的前缀
 * encode true/false 是否进行URL编码,默认为true
 * idx ,循环第几次,用&拼接
 * return URL参数字符串
 */
var urlEncode = (param,idx, key, encode)=> {
  console.log('idx',idx)
  if(param==null) return '';
  var paramStr = '';
  var t = typeof (param);
  if (t == 'string' || t == 'number' || t == 'boolean') {
    var one_is =idx<3?'?':'&';
    paramStr += one_is + key + '=' + ((encode==null||encode) ? encodeURIComponent(param) : param);
  } else {
    for (var i in param) {
      var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i);
      idx++
      paramStr += urlEncode(param[i],idx, k, encode);
    }
  }
  return paramStr;
};

调用:

var url ='http://baidu.com';

var data ={a:1,b:2}

url=url+urlEncode(data,1);
//http://baidu.com?a=1&b=2
发布了387 篇原创文章 · 获赞 774 · 访问量 183万+

猜你喜欢

转载自blog.csdn.net/qq_35713752/article/details/103243181
今日推荐