yidash(易大师)一万个JavaScript实用方法库。
MIT License
警告⚠️
:未发布 v2.0.0 之前,均为不稳定版本,慎用!!!
文档官网 https://yidash.yicode.tech
github https://github.com/chenbimo/yidash
npm install yidash
# 或
pnpm add yidash
注意⚠️
:本项目暂时只提供 ESM
包。
import { yd_number_validNumber, yd_regexp_trainNumber, yd_tree_array2Tree } from 'yidash';
console.dir(
yd_tree_array2Tree([
{ id: 1, pid: 0 },
{ id: 2, pid: 1 },
{ id: 3, pid: 2 }
])
);
console.dir(yd_regexp_trainNumber);
const validNumber = yd_number_validNumber();
console.log(validNumber(1.111)); // 1.11
console.log(validNumber(1.571333)); // 1.57
console.log(validNumber('1..221333')); // 1.22
console.log(validNumber('1.2213.33')); // 1.22
console.log(validNumber('1.')); // 1.
console.log(validNumber('1.2')); // 1.20
console.log(validNumber('1.2.')); // 1.20
加笔者微信 chensuiyime
,注明 yidash
,拉你进微信交流群。
群内将解答关于代码贡献相关的问题。
注意:只提交lib中的函数到本仓库合并即可,其他文件不要提交。
JSDoc注释
,不然别人看不懂,不知道怎么用。函数作者
,标签为 @author
,如 @author chensuiyi
。函数别名
,标签为 @alias
,如 @alias yd_is_array
。案例说明
,标签为 @example
,如 @example yd_is_array([1,2,3])
。测试用例
,在 test目录
下,与 lib目录
中的结构一一对应。4格缩进
,不喜欢的请不要参与本项目。提交主题:提交描述
写清楚提交信息。一个函数一个文件
,不能多个导出函数写到一个文件中。import
导入,除第三方包和内置模块外,其他必须写上文件扩展名。default
默认导出,且导出的必须是一个 箭头函数
。const
定义的地方尽量用 const
。var
定义变量。不要炫技
,用尽量简单易懂的方式,宁愿多写几行,也不要增加理解难度。es-toolkit
和 lodash
已经存在的函数不要重复实现。只有几行代码
的函数不要添加进来。特殊情况例外
)。目前用到的依赖如下:
因为es-toolkit还在开发中,所以部分函数用lodash-es中的。
最终目标是所有基础函数都用es-toolkit中的。
lib
目录下,每一个目录是一个函数类型集合。
每个目录下,不能再创建目录,只能创建函数文件。
函数名称尽量简短且清楚地表达函数的作用。
对外导出的函数名称 = 前缀 + 目录 + 函数。
比如 lib/is/array.js
函数,则其对外导出的函数名称是 yd_is_array
。
这个函数名称会自动生成,不要手动书写。
函数的JSDoc示例:
@author
@category
@alias
@example
是必备标签。
@alias
标签必须写函数的导出全名,不然在文档中会有显示问题。
标签顺序已添加eslint规则,会自动进行排序。
/**
* 计算剩余时间
* @author 陈随易 <https://chensuiyi.me>
* @category 日期时间
* @alias yd_datetime_leftTime
* @param {number} seconds 剩余时间秒数
* @returns {object} 返回剩余时间的不同单位值
* @summary 这个函数用来根据传入的时间,来计算该时间到当前时间还有多少年、多少月、多少天、等等。
* @example
* yd_datetime_leftTime(10000);
* 结果:{
* years: 0,
* months: 0,
* weeks: 0,
* days: 0,
* hours: 2,
* minutes: 166,
* seconds: 10000,
* text: '2 小时',
* type: '还剩'
* }
*/
能够明确表达提交的内容就行
举例:
fnMap地址:https://marketplace.visualstudio.com/items?itemName=chensuiyi.fn-map
。