相关工具类方法

42 阅读1分钟

货币信息转换

// 货币格式化
export function formatCurrency(num) {
  if (!num) return "0.00";
  num = num.toString().replace(/\$|\,/g, "");
  if (isNaN(num)) num = "0";
  let sign = num == (num = Math.abs(num));
  num = Math.floor(num * 100 + 0.50000000001);
  let cents = num % 100;
  num = Math.floor(num / 100).toString();
  if (cents < 10) cents = "0" + cents;
  for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
    num =
      num.substring(0, num.length - (4 * i + 3)) +
      "," +
      num.substring(num.length - (4 * i + 3));
  return (sign ? "" : "-") + num + "." + cents;
}

使用方式

let num = 23,102
formatCurrency(num) // 23,102.00

深拷贝

// 简单的深拷贝,只针对简单对象和Array
export const simpleCloneDeep = (value) => {
  if (Object.prototype.toString.call(value) === "[object Object]") {
    const obj = {};
    for (let key in value) {
      obj[key] = simpleCloneDeep(value[key]);
    }
    return obj;
  } else if (Array.isArray(value)) {
    const arr = [];
    value.forEach((item, i) => {
      arr[i] = simpleCloneDeep(item);
    });
    return arr;
  } else {
    return value;
  }
};

使用方式

let obj = {
name:"张三",
age:"24"
}
simpleCloneDeep(obj) // 

安全地字符串转对象

// 安全地字符串转对象
export function JSONParse(objString) {
  let result = null;
  if (objString === "") return result;
  try {
    result = JSON.parse(objString);
  } catch (err) {
    result = null;
  }
  return result;
}

使用方法

let area = JSONParse(sessionStorage.getItem('area'));