LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

几个短小精悍实用的 js 代码

admin
2026年5月18日 15:44 本文热度 59

今天我把自己收藏的几个 js 代码分享一下。都是一些过去可能得专门 pnpm npm 导入新库才能实现的功能,实际上几个字符就能搞定。在 AI 时代,收集到自己的收藏库里,可能会让 AI 生成的代码引入库更少,避开 AI 生成代码的冗余、兼容性隐患.... 反正不管怎么说,看看新鲜也行。

比如第一个,我前年做的业务里,需要随机 ID (唯一识别码 UUID)。

本来下意识是使用 random 或者各种歪门邪道自己搞一个。后来在一个外网的大佬里,学了一招。没想到 JS 里竟然有这种 API :

const getUUID = () => crypto.randomUUID();
console.log(getUUID())
// 输出例子: df91af4f-0115-44ad-88b2-1279db811e62

这个可不是随机数,这个是内置的crypto加密模块搞的,安全性很高!不会出现重复(有生之年)。

(注意,crypto 不是 es 接口,做通用库兼容性还是要注意的,比如微信小程序不支持。有些环境还得引入 uuid 库)

然后是一个 异步 同步 的问题。

在 js 里,异步 是写着不爽,调试起来更不爽的东西。

但是 GEMINI 曾经给我一个 巧妙的 写法。

一定程度上,可以基本上让 代码 不再考虑 异步 。就是一切代码都是 同步 的,一条线顺着写下去的。

const wait = (ms = 0) => new Promise(res => setTimeout(res, ms));

// 使用例子(大家应该能领悟到,它的强大吧?!)
await wait(1000)
console.log('1秒后')

这一下子就让 js 的编写没有那么绕脑子了哈哈!全不用再考虑异步那套东西!

接下来是一个也是很常用的场景,就是枚举等需要反向查询值的时候,有个函数也很好用:

const flipObject = (obj = {}) => Object.fromEntries(Object.entries(obj).map(([a, b]) => [b, a]));

// 使用案例
const cityCode = { 北京: '010', 上海: '021' }
flipObject(cityCode)['021'] // 这样就能反着查值了,哈哈

这个其实还挺实用,虽然速度回慢一点,但只有上了几十万键才会有区别,没那么夸张,简单干净为王。

然后是数字前置补零。这个在时间、订单、文件名、工号生成、目录 等等等业务里面,都会高频用到。

const fillZero = (n = 0, fixLen = 2) => n.toString().padStart(fixLen, '0');
// 案例
const hour = 8;
const minute = 5;
console.log(fillZero(hour) + ':' + fillZero(minute)); // 08:05

这个大家收藏一下。

还有一个,就是【一键复制代码】,不再多说。

const copyToClipboard = async (content = '') => {
  try {
    await navigator.clipboard.writeText(content);
    return true;
  } catch {
    return false;
  }
};

// 使用案例
copyToClipboard('这是要复制的内容')
  .then(success => {
    if (success) console.log('复制成功');
    else console.log('复制失败,浏览器未授权或环境不支持');
  });

还有一个经典的,超级好用的,最稳定的 打乱算法(Fisher‑Yates 洗牌算法):

const randomSortList = (sourceList) => {
  const tempArr = [...sourceList];
  for (let i = tempArr.length - 1; i > 0; i--) {
    const randomIndex = Math.floor(Math.random() * (i + 1));
    [tempArr[i], tempArr[randomIndex]] = [tempArr[randomIndex], tempArr[i]];
  }
  return tempArr;
};

// 使用案例

const data = [1, 2, 3, 4, 5];
console.log(randomSortList(data));  // 打乱了

// 以前你可能这样写 打乱算法
// 这个超级难用,容易被客户投诉
const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());

这个算法,是最均匀和公平的,不会出现局部扎堆问题。比 AI 直接原生写的打乱算法质量高多了,我以前做抽奖程序时用过,最后还是这个最好用。


该文章在 2026/5/18 15:57:57 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-9  粤公网安备44030602007207号