JavaScript常用工具类util记录,时不时更新

本文分享了JavaScript中的一些实用工具函数,包括对象转URL字符串、精确数值计算、处理差值、数字转换以及计算星期等功能。这些函数可以解决在开发过程中常见的精度丢失和日期处理等问题,提高代码效率。
摘要由CSDN通过智能技术生成

JavaScript常用工具类util记录,时不时更新

// util.js

// 对象转url字符串
var toUrls = function (o) {
  var arr = [];
  for (var p in o) {
    if (o.hasOwnProperty(p)) {
      arr.push(encodeURIComponent(p) + "=" + encodeURIComponent(o[p]));
    }
  }
  return '?' + arr.join("&");
}
/**
 * 精确计算加减,处理精度问题
 * @param {number} arg1 
 * @param {number} arg2 
 */
export const accurateCalc = (arg1 = 0, arg2 = 0, type = 'add') => {
  let result = 0;
  // 计算最大小数位数
  const space1 = arg1.toString().split('.')[1] || 0;
  const space2 = arg2.toString().split('.')[1] || 0;
  const maxSpace = Math.max(space1.length || 0, space2.length || 0);
  // 倍数
  const multiple = Math.pow(10, maxSpace);
  if (type === 'add') { // 加法
    result = Math.round(arg1 * multiple + arg2 * multiple) / multiple;
  } else if (type === 'sub') { // 减法
    result = Math.round(arg1 * multiple - arg2 * multiple) / multiple;
  }
  return result;
}

/**
 * 计算差值
 * @param {num = 0} 计算的数字
 * @param {count = 0} 差值
 */
export const handleCount = (num, count) => {
  return count ? accurateCalc(num, count, 'sub') : accurateCalc(num, Math.abs(count));
}
/**
 * 保留保留整数,向上取整
 * @param {num = 0} 计算的数字
 */
export const toParseNum = (num = 0) => {
  const str = num.toString().split('.');
  return str[1] ? (+str[0]) + 1 : num;
}
/**
 * 保留4位小数,最后一位小叔进1
 * @param {num = 0} 计算的数字
 */
export const toTargetNum = (num = 0) => {
  const str = num.toString().split('.');
  let str1 = str[1] != undefined ? str[1] : '';
  if (str1.length > 4) str1 = +str1.slice(0, 4) + 1;
  return str1 ? +(`${str[0]}.${str1}`) : num;
}
/**
 * 计算星期
 * @param  {String="YYYYMM"} m 年月
 * @return {Array} 周列表
 */
 export const handleWeeks = (m) => {
  // 这个月天数
  const totalDay = moment(m).daysInMonth();

  // 把每天组成YYYYMMDD
  const allMonthData = [];
  for (let i = 0; i < totalDay; i++) {
    const d = i + 1;
    const o = `${m}${d < 10 ? `0${d}` : d}`
    allMonthData.push(o)
  }
  // 判断第一天为周几,然后按周切成数组, 0是周一(汉化后),按中国周一-周日为一周
  let firstDayWeek = moment(allMonthData[0]).weekday();
  const weeks = [];
  function getWeek(days, length) {
    let newWeek = days.splice(0, length);
    weeks.push(newWeek);
    days.length > 7 ? getWeek(days, 7) : weeks.push(days);
  }
  getWeek(allMonthData, 7 - firstDayWeek);
  return weeks;
}
// 周目标汉化枚举
export const numEnum = ["一", "二", "三", "四", "五", "六"];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用的Java工具类有很多,以下是一些常见的工具类: 1. org.apache.commons.io.IOUtils:提供了一组用于处理输入输出流的实用方法,如复制流、关闭流等。\[1\] 2. org.apache.commons.io.FileUtils:提供了一组用于操作文件和目录的实用方法,如复制文件、删除文件等。\[2\] 3. org.apache.commons.lang.StringUtils:提供了一组用于处理字符串的实用方法,如判断字符串是否为空、去除字符串中的空格等。\[3\] 4. org.apache.http.util.EntityUtils:提供了一组用于处理HTTP实体的实用方法,如获取实体内容、解析实体等。 5. org.apache.commons.lang3.StringUtils:是Apache Commons Lang库的一部分,提供了更多字符串处理的实用方法,如判断字符串是否为数字、反转字符串等。 6. org.apache.commons.io.FilenameUtils:提供了一组用于处理文件名的实用方法,如获取文件名的扩展名、合并路径等。 7. org.springframework.util.StringUtils:是Spring框架中的一个工具类,提供了一组用于处理字符串的实用方法,如判断字符串是否为空、去除字符串中的空格等。 8. org.apache.commons.lang.ArrayUtils:提供了一组用于处理数组的实用方法,如判断数组是否为空、合并数组等。 这些工具类可以帮助开发人员简化代码,提高开发效率。具体使用哪些工具类取决于项目需求和个人偏好。 #### 引用[.reference_title] - *1* *3* [【Java】Java中的常用工具类(排名前 16)](https://blog.csdn.net/u011397981/article/details/129688782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [「Java工具类」验证码工具类java生成验证码工具类](https://blog.csdn.net/lxn39830435731415926/article/details/121259382)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值