常用 JS 函数

h5 页面嵌入 QQ 客服代码

<a href="mqqwpa://im/chat?chat_type=wpa&uin={{yourQQNumber}}&version=1&src_type=web&web_src=oicqzone.com"></a>

将一个数组分为多个数组

示例:[1,2,3,4,5,6,7,8,9,10] 转换为 [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]]

const sliceArray = function (arr, num) {
  const result = [];
  for (let i = 0; i < arr.length; i += num) {
    result.push(arr.slice(i, i + num));
  }
  return result;
};

限制只能传入数字

// valStr 确保是一个字符串类型
const limitToNumberStr = function (valStr) {
  let tempValue = valStr.toString();
  return tempValue
    .replace(/[^0-9.]/g, "")
    .replace(".", "#*")
    .replace(/\./g, "")
    .replace("#*", ".");
};

将对象转换为数组

方式 1

示例:{ userName : 'elite' , local : 'china' } 转换为 [{ name : 'userName' , value : 'elite' } , { name : 'local' , value : 'china' }]

方式 2

示例:{ userName : 'elite' , local : 'china' } 转换为 [{ userName : 'elite' } , { local : 'china' }]

判断数据类型

方法 1 返回值为 Boolean 值

方法 2 返回值为数据类型

巧用 window.open

不想使用 a 标签破环样式结构的话,可以使用 window.open 实现部分常用功能 window.open(URL,name,specs,replace)

js 获取 div 宽高

js 时间处理

  1. 方法 1: 传入一个合法的 date 格式时间数据,返回 {YY, MM, DD, HH, mm, ss},默认返回当前时间的对象格式 例如:formatDate(new Date())返回对象:{ YY: '2021', MM: '01', DD: '12', HH: '09', mm: '56', ss: '55' }

  1. 方法 2: 返回类似 "2021/01/12 09:48:04" 格式的时间字符串

js 获取前一天的日期

js 获取某月最后一天是几号

更新对象属性值

在不给目标对象增加新的属性的同时更新目标对象属性值

删除数组某一项

index 从 0 开始

获取文件类型

复制文字

数组去重

前端排序

  1. 简单排序

  1. 数字中英混合排序(简单)

  • 代码说明

  1. 使用 localeCompare 方法

    • localeCompare 是 JavaScript 内置的字符串比较方法

    • 参数 'zh-CN' 指定使用中文(简体)的排序规则

    • 自动处理中文字符的拼音排序(按拼音首字母顺序)

  2. 排序规则

    • 中文按拼音首字母排序(如:陈(C) < 李(L) < 王(W) < 张(Z))

    • 英文按字母顺序排序(A-Z)

    • 中英混合时统一按拼音/字母顺序混合排序(如:Alice < Bob < 陈六 < 李四)

  • 注意事项:

  1. 不改变原数组:如果需要保留原数组,可先创建副本:

  2. 浏览器兼容性

    • 所有现代浏览器均支持

    • IE10+ 支持(需要启用 Intl 支持)

  3. 扩展功能

    • 如需区分大小写:添加 sensitivity: 'case' 选项

    • 如需数字智能排序:添加 numeric: true 选项

  1. 数字中英混合排序(严谨) 以下是实现按照数字 > 字母 > 中文的优先级进行排序的 JavaScript 代码:

  • 代码说明:

  1. 优先级规则

  • 数字开头(0-9)优先于所有其他类型

  • 字母开头(a-z,A-Z)次优先

  • 中文/其他字符最后

  1. 实现逻辑

  • 字符类型检测:使用正则表达式判断首字符类型

  • 优先级排序:不同类型按数字(0) > 字母(1) > 中文(2)的顺序排序

  • 同类型排序

    • 数字:按数值大小排序(如"42" > "123")

    • 字母:按字母顺序排序(不区分大小写)

    • 中文:按拼音首字母排序

  1. 特殊处理

  • 空字符串或 undefined 视为中文类型

  • 支持中英文混合字符串(如"中文 abc")

  • 正确处理大小写字母(A-Z 排在 a-z 之前)

  • 测试输出结果:

  • 关键特点:

  1. 多级排序:优先按首字符类型排序,再按具体值排序

  2. 中文支持:使用localeCompare的'zh-CN'参数实现拼音排序

  3. 健壮性:处理了空值、空字符串等边界情况

  4. 效率优化:仅对首字符进行类型检测,减少计算量

此实现严格遵循数字 > 字母 > 中文的优先级规则,同时确保同类型内的合理排序,满足各种实际应用场景的需求。

数组取交集/差集

数组 a 是否包含数组 b

实现按照给定 ID 数组顺序对对象数组进行排序

字符串转数组

下划线转驼峰命名

滚动到页面顶部、底部

滚动到某个子元素的位置

获取两个元素的纵向距离

防抖和节流

函数防抖(debounce): 当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新 开始延时。

函数节流(throttle): 当持续触发事件时,保证一定时间段内只调用一次事件处理函数。

判断一个字符串能否转换为有效的数字类型

压缩下载图片

Last updated

Was this helpful?