radash工具类

radash简介

radash 库是一个现代的 JavaScript 工具库,旨在提供一系列实用的函数,以简化常见的编程任务。它受到 lodash 和 ramda 等库的启发,但旨在提供更简洁和现代的 API。
GitHub
radash官方文档,得翻墙
radash镜像

radash对标工具lodashjs

lodashjs中文文档

radash特点
  • 简洁的 API:radash 提供了一系列简洁的函数,用于处理数组、对象、字符串等数据类型。

  • 模块化:库中的每个函数都是独立的,可以根据需要单独导入,有助于减少最终打包体积。

  • 现代 JavaScript:radash 使用现代 JavaScript 语法和特性,如箭头函数、模板字符串等。

  • 无依赖:radash 不依赖于其他库,可以独立使用。

  • 易用性:API 设计直观,易于上手。

能做什么
  • 数组操作:提供了一系列数组操作函数,如 map、filter、reduce、find 等。

  • 对象操作:可以处理对象的键和值,如 keys、values、entries 等。

  • 字符串操作:提供字符串处理函数,如 trim、split、join 等。

  • 函数工具:提供函数相关的工具,如 curry、partial、compose 等。

  • 逻辑操作:提供逻辑操作函数,如 and、or、not 等。

  • 类型检查:提供类型检查函数,如 isArray、isObject、isString 等。

  • 随机数生成:可以生成随机数或随机数组。

  • 路径操作:提供路径操作函数,如 get、set、unset 等。

  • 集合操作:提供集合操作函数,如 union、intersection、difference 等。

在这里插入图片描述

安装
npm i radash
tryit方法

tryit 方法相当于可以帮你给异步操作加一层 try catch,有利于操作的兜底以及错误的捕获

import { tryit } from 'radash'
const [err, user] = await tryit(api.users.find)(userId)
if (err){
    return;
}
retry方法

retry 可以帮你做异步操作的失败重试,并且你可以配置重试延迟、重试次数

import { retry } from 'radash'

await retry({}, api.users.list)
await retry({ times: 10 }, api.users.list)
await retry({ times: 2, delay: 1000 }, api.users.list)

// exponential backoff
await retry({ backoff: i => 10**i }, api.users.list)
parallel 方法

parallel 你可以理解为它是 Promise.all 的加强版,它不止能帮你做多个异步操作的并发处理,还能帮你控制并发数量

import { parallel } from 'radash'
const userIds = [,2,3,4,5,6,7,8,9];
const users = await parallel(3, userIds, async() =>{
    return await api.user.find(userId);
});
counting 方法

counting 可以帮你计算符合条件的项的个数

import { counting } from 'radash'
const peops = [
    {name:'yyh1', age: 30}
    {name:'yyh2', age: 25}
    {name:'yyh3', age: 35}
]
const 30Age = counting(item => item.age > 30, peops)
range 方法

range 帮你创建一个指定范围内数字的数组

import { range } from 'radash'
const numbers = range(1,5);
// [1,2,3,4,5];
const numbers = range(5,0, -1);
// [5,4,3,2,1,0]
list方法

list 方法帮你创建一个包含指定元素的数组,有点类似于 Array.prototype.fill

import { list } from 'radash'
const repeatNumbers = list(3, 0);
// [0,0,0]
const custList = list(4, (index) =>index+1);
// [1,2,3,4]

pick方法

pick 用来从对象中选取所需的属性

import { pick } from 'radash'

const fish = {
  name: 'Bass',
  weight: 8,
  source: 'lake',
  barckish: false
}

pick(fish, ['name', 'source']) // => { name, source }
uid

生成唯一标识符

import { uid } from 'radash'

uid(7) // => UaOKdlW
uid(20, '*') // => dyJdbC*NsEgcnGjTHS

方法目录

Array
  • alphabetical 按属性的字母顺序对对象数组进行排序
  • boil 项目列表缩减为一项
  • cluster 将列表拆分为给定大小的多个列表
  • counting 创建一个包含项目出现次数的对象
  • diff 创建两个数组之间的差异数组
  • first 获取列表中的第一项
  • flat 将数组数组展平为一维
  • fork 根据条件将数组拆分为两个数组
  • group 将数组中的项目分组
  • intersects 确定两个数组是否有共同项
  • iterate 迭代回调 n 次
  • last 获取列表中的最后一项
  • list 创建包含特定项目的列表
  • max 从数组中获取最大项
  • merge 合并两个列表并覆盖第一个列表中的项目
  • min 从数组中获取最小项
  • objectify 将列表转换为字典对象
  • range 创建用于迭代的范围
  • replaceOrAppend 替换数组中的项目,如果不匹配则追加
  • replace 替换数组中的一项
  • select 过滤并映射数组
  • shift 将数组项移动 n 步
  • sift 从列表中删除所有虚假项目比方说null,false,NaN
  • sort 按数值属性对对象列表进行排序
  • sum 将数组的所有项相加
  • toggle 切换数组中某个项目的存在
  • unique 从数组中删除重复项
  • zipToObject 将多个数组组合成集合
  • zip 将多个数组组合成集合
Async
  • all 等待许多承诺
  • defer 使用延迟函数运行异步函数
  • guard 如果发生错误,则让函数返回未定义
  • map 使用异步函数映射数组
  • parallel 并行运行多个异步函数
  • reduce 使用异步函数减少数组
  • retry 如果失败则运行异步函数重试
  • sleep 异步等待时间过去,await sleep(2000)
  • tryit 将函数转换为错误优先函数
Curry
  • chain 创建一个按顺序运行的函数链
  • compose 创建函数组合
  • debounce 创建防抖回调函数
  • memo 记忆函数
  • partial 创建 partial函数
  • partob 创建 partob 函数
  • proxied 创建动态代理对象
  • throttle 截流
Number
  • inRange 检查给定的数字是否介于两个数字之间
  • toFloat 尽力将给定值转换为浮点数
  • toInt 尽力将给定值转换为整数
Object
  • assign 递归地将两个对象合并在一起
  • clone 创建给定对象/值的浅表副本
  • construct 根据关键路径和值构建对象
  • crush 将深层对象展平为单一维度
  • get 给定任意值和一个选择函数来获取所需的属性
  • invert 反转对象的键和值
  • keys 获取对象的所有键
  • listify 将对象转换为列表
  • lowerize 将所有对象键转换为小写
  • mapEntries 映射对象的键和值,可同时修改键值和键名
  • mapKeys 返回一个新对象,其中包含通过该函数映射的所有键,可修改键名
  • mapValues 返回一个新对象,其中包含通过该函数映射的所有值,可修改值
  • omit 给定一个对象和该对象中的键列表,返回一个不包含任何给定键的新对象
  • pick 给定一个对象和该对象中的键列表,返回一个仅具有给定键的新对象
  • set 使用路径键设置对象的值
  • shake 从对象中删除不需要的值
  • upperize 将所有对象键转换为大写
Random
  • draw 从列表中获取随机项目
  • random 生成随机数
  • shuffle 随机打乱数组
  • uid 生成唯一标识符
  • series 创建有序系列对象
String
  • camel 转驼峰
  • capitalize 首字母大写
  • dash 破折号连接
  • pascal 首字母大写去空格
  • snake 下划线连接
  • template 搜索表达式将数据对象的值模板化为字符串
  • title 按标题大小写格式格式化给定的字符串
  • trim 修剪给定字符串中的所有前缀和后缀字符
Typed
  • isArray 是否是数组
  • isDate 是否是日期
  • isEmpty 是否为空
  • isEqual 是否相等
  • isFloat 是否浮点数
  • isFunction 是否函数
  • isInt 是否整数
  • isNumber 是否数字
  • isObject 是否对象
  • isPrimitive 是否为原始类型
  • isPromise 是否为promise
  • isString 是否字符串
  • isSymbol 是否Symbol
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值