前端封装的方法

分享几个前端封装好的方法

1、将一个对象里面的键值对转换成url地址

export function tansParams(params) {

  let result = "";

  for (const propName of Object.keys(params)) {

    const value = params[propName];

    var part = encodeURIComponent(propName) + "=";

    if (value !== null && value !== "" && typeof value !== "undefined") {

      if (typeof value === "object") {

        for (const key of Object.keys(value)) {

          if (value[key] !== null && value[key] !== "" && typeof value[key] !== "undefined") {

            let params = propName + "[" + key + "]";

            var subPart = encodeURIComponent(params) + "=";

            result += subPart + encodeURIComponent(value[key]) + "&";

          }

        }

      } else {

        result += part + encodeURIComponent(value) + "&";

      }

    }

  }

  return result;

}

你可以将该函数作为一个工具函数,用于将一个 JavaScript 对象转换为 URL 查询参数格式的字符串。在前端开发中,我们常常需要通过 AJAX 或者跳转链接的方式将数据传递到服务器端,此时将数据转换成 URL 查询参数格式是一种常见的做法。

假设有一个 JavaScript 对象如下:

const params = {
  name: "Jack",
  age: 25,
  hobbies: ["swimming", "jogging"],
  address: {
    city: "Beijing",
    street: "Haidian",
  },
};

可以使用 tansParams 函数将其转换为 URL 查询参数格式的字符串,如下所示:

const str = tansParams(params);
console.log(str);
// 输出: name=Jack&age=25&hobbies[0]=swimming&hobbies[1]=jogging&address[city]=Beijing&address[street]=Haidian&

通过调用该函数,我们能够将 JavaScript 对象转换为经过序列化的 URL 查询参数格式的字符串,并且这个过程是通用的,适用于从前端到后端的服务端开发。

 2、是将两个对象数据覆盖,如果检测有就合并没有就不合并

export function objAssign(target, provide) {

  //注意这里遍历 target 的key

  Object.keys(target).forEach((key) => {

    if (Object.prototype.hasOwnProperty.call(provide, key)) {

      target[key] = provide[key];

    }                                                                                                                       

  });

}

跟obj.assign还是有一定的区别的

例如:

const target = { a: 1, b: 2 };
const provide = { b: 3, c: 4, d: 5 };
objAssign(target, provide);
console.log(target); // { a: 1, b: 3, c: 4 }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值