小程序处理地址拼接

/**
 * 对传值的地址参数进行处理,将其拼接转换成string 用于传参数处理
 * 使用地址传值需要配合remax useQuery() 方法
 * 保证name 和 value 都是string / number 类型 传入内嵌的数组或者对象会被转换成 "object","array" 类型字符串的使用时需要注意
 * @param param type:Array | Object
 * @param1 name 拼接的字段名
 * @param2 value 拼接的字段值
 * @return {string} 类型为 name1=value1&name2=value2
 * 注意:当类型为object时不会处理里面的内嵌对象和数组
 * param 类型为Array 时传入的数组的数据类型需要有name和value字段
 * name 可以理解为键名 value为键值
 * eg:
 * const array = [{name: 'id',value:1},{name:'code',value:2}]
 * => id=1&code=2
 */

export function toConcatString(param) {
  let string = '';
  // 传入的数据为数组
  if (Array.isArray(param)) {
    param.map((item) => {
      string = `${string}${item.name}=${item.value}&`;
    });
    string = string.substr(0, string.length - 1);
    return string;
  }
  // 默认传值为对象
  // tempArr 转换为一个临时的数组
  const tempArr = [];
  for (let key in param) {
    // 符合类型的会被进行操作
    if (typeof param[key] === 'string' || isNumber(param[key])) {
      tempArr.push({
        name: key,
        value: param[key],
      });
    }
  }
  tempArr.map((item) => {
    string = `${string}${item.name}=${item.value}&`;
  });
  string = string.substr(0, string.length - 1);
  return string;
}



使用


navigateTo({ url: `/pages/index?${toConcatString(handleData)}`}).catch();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值