简介
Hobby 是一个小而美的 npm 包,提供了一系列简单、实用的工具函数,可以方便快捷地进行前端开发。其中包括但不限于:日期处理、字符串处理、数组处理、对象操作等功能,通过 Hobby 可以使前端开发工作更加高效,提高代码的可读性和可维护性。
安装
使用 npm 或 yarn 进行安装。
npm install hobby # or yarn add hobby
使用
引入 Hobby 包。
import hobby from "hobby";
日期处理
Hobby 提供了有关于日期处理的方法,包括:
formatDate(date: Date, fmt: string): string
:将日期对象转换为指定格式的字符串diffDays(date1: Date, date2: Date): number
:计算两个日期之间的天数差firstDayOfMonth(date: Date): Date
:返回指定日期所在月份的第一天lastDayOfMonth(date: Date): Date
:返回指定日期所在月份的最后一天
const date = new Date("2021-06-19"); hobby.formatDate(date, "yyyy-MM-dd"); // 2021-06-19 hobby.diffDays(date, new Date("2021-06-22")); // 3 hobby.firstDayOfMonth(date); // Date object of first day in June 2021 hobby.lastDayOfMonth(date); // Date object of last day in June 2021
字符串处理
Hobby 提供了有关于字符串处理的方法,包括:
truncate(str: string, length: number, ending: string = "..."): string
:截取字符串,如果超过指定长度,则在结尾添加指定的字符capitalize(str: string): string
:将首字母转换为大写reverse(str: string): string
:反转字符串isEmpty(str: string): boolean
:判断字符串是否为空isEmail(str: string): boolean
:判断字符串是否符合邮箱格式isPassword(str: string): boolean
:判断字符串是否符合密码格式(字母加数字的组合)
const str = "hello, world!"; hobby.truncate(str, 5); // hello... hobby.capitalize(str); // Hello, world! hobby.reverse(str); // !dlrow ,olleh hobby.isEmpty(str); // false hobby.isEmail("test@example.com"); // true hobby.isPassword("test1234"); // true
数组处理
Hobby 提供了有关于数组处理的方法,包括:
unique(arr: any[]): any[]
:去重flatten(arr: any[]): any[]
:数组扁平化compact(arr: any[]): any[]
:过滤数组中的 falsy 值sortBy(arr: any[], key: string): any[]
:根据指定 key 对对象数组进行排序
const arr = [1, 2, 3, 2, 4]; hobby.unique(arr); // [1, 2, 3, 4] hobby.flatten([1, [2, 3], [[4], [5, 6]]]); // [1, 2, 3, 4, 5, 6] hobby.compact([1, null, 2, "", 3, undefined]); // [1, 2, 3] const users = [{ name: "Alice", age: 25 }, { name: "Bob", age: 20 }]; hobby.sortBy(users, "age"); // [{ name: "Bob", age: 20 }, { name: "Alice", age: 25 }]
对象操作
Hobby 提供了有关于对象操作的方法,包括:
deepClone(obj: any): any
:深拷贝对象merge(obj1: object, obj2: object): object
:合并两个对象pluck(objs: any[], key: string): any[]
:提取对象数组中指定 key 对应的值
const obj1 = { a: 1, b: { c: 2 } }; const obj2 = { b: { d: 3 }, e: 4 }; hobby.deepClone(obj1); // { a: 1, b: { c: 2 } },不影响原对象 hobby.merge(obj1, obj2); // { a: 1, b: { c: 2, d: 3 }, e: 4 } const users = [{ name: "Alice", age: 25 }, { name: "Bob", age: 20 }]; hobby.pluck(users, "name"); // ["Alice", "Bob"]
总结
Hobby 是一个小而美的 npm 包,提供了一系列简单、实用的工具函数,可以方便快捷地进行前端开发。通过本文的介绍,我们了解了 Hobby 的安装和使用方法,并展示了 Hobby 提供的四类工具函数:日期处理、字符串处理、数组处理和对象操作。这些工具函数可以很好地提高前端开发工作的效率,让代码更加简洁、易读、易维护。希望读者能够在实际开发中加以运用,并结合实际需求进行进一步的拓展和定制。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055d4781e8991b448db111