Radash 轻量级的函数工具集

Radash 是一个现代的 JavaScript 实用程序库,旨在提供高效、轻量级的函数工具集,类似于 Lodash,但更加现代化和模块化。Radash 通过提供一系列常用的工具函数,帮助开发者更轻松地处理数组、对象、函数等操作。

以下是一些 Radash 中常用的工具函数及其用法示例:

1. _.try

安全地执行一个可能会抛出错误的函数,并返回一个包含错误和结果的元组。

javascript 复制代码
import { try as tryCatch } from 'radash';

const mightThrow = (value) => {
  if (value < 0) {
    throw new Error('Value must be non-negative');
  }
  return value * 2;
};

const [error, result] = tryCatch(() => mightThrow(-1));

if (error) {
  console.error('An error occurred:', error.message);
} else {
  console.log('Result:', result);
}

2. _.debounce

创建一个防抖动函数,在指定时间间隔内只执行一次。

javascript 复制代码
import { debounce } from 'radash';

const log = debounce((message) => {
  console.log(message);
}, 300);

log('Hello');
log('Hello again');  // 只有这条消息会被打印,因为前面的调用在300毫秒内被取消了

3. _.throttle

创建一个节流函数,在指定时间间隔内最多执行一次。

javascript 复制代码
import { throttle } from 'radash';

const log = throttle((message) => {
  console.log(message);
}, 300);

log('Hello');
log('Hello again');  // 只有第一条消息会被打印,后面的调用会被忽略

4. _.merge

深度合并两个对象。

javascript 复制代码
import { merge } from 'radash';

const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { b: { d: 3 }, e: 4 };

const result = merge(obj1, obj2);
console.log(result);  // { a: 1, b: { c: 2, d: 3 }, e: 4 }

5. _.clone

深度克隆一个对象或数组。

javascript 复制代码
import { clone } from 'radash';

const obj = { a: 1, b: { c: 2 } };
const clonedObj = clone(obj);

console.log(clonedObj);  // { a: 1, b: { c: 2 } }
console.log(clonedObj === obj);  // false
console.log(clonedObj.b === obj.b);  // false

6. _.memoize

创建一个记忆化函数,缓存其计算结果。

javascript 复制代码
import { memoize } from 'radash';

const expensiveFunction = (num) => {
  console.log('Computing...');
  return num * 2;
};

const memoizedFunction = memoize(expensiveFunction);

console.log(memoizedFunction(2));  // Computing... 4
console.log(memoizedFunction(2));  // 4 (cached)

7. _.omit

创建一个新对象,忽略指定的属性。

javascript 复制代码
import { omit } from 'radash';

const obj = { a: 1, b: 2, c: 3 };
const newObj = omit(obj, ['b', 'c']);

console.log(newObj);  // { a: 1 }

8. _.pick

创建一个新对象,只包含指定的属性。

javascript 复制代码
import { pick } from 'radash';

const obj = { a: 1, b: 2, c: 3 };
const newObj = pick(obj, ['a', 'c']);

console.log(newObj);  // { a: 1, c: 3 }

9. _.unique

返回一个数组,其中只包含唯一的值。

javascript 复制代码
import { unique } from 'radash';

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = unique(arr);

console.log(uniqueArr);  // [1, 2, 3, 4, 5]

10. _.groupBy

根据提供的函数将数组元素分组。

javascript 复制代码
import { groupBy } from 'radash';

const arr = [6.1, 4.2, 6.3];
const grouped = groupBy(arr, Math.floor);

console.log(grouped);  // { '4': [4.2], '6': [6.1, 6.3] }

这些是 Radash 中一些常用的工具函数。Radash 的设计目标是提供现代、轻量且高效的工具函数,帮助开发者更轻松地处理常见的编程任务。你可以在 Radash 的官方文档中找到更多的工具函数及其详细用法。https://radash-docs.vercel.app/docs/getting-started

相关推荐
10年前端老司机17 分钟前
Next.js+LangGraph.js+ 简历工具AI Agent完整落地
前端·langchain·agent
IT_陈寒5 小时前
Java中equals方法比了个寂寞?原来这才是正确的重写姿势
前端·人工智能·后端
默_笙5 小时前
🚓 分诊台与拆题术:让 RAG 学会判断和规划
前端·javascript
CopyCode5 小时前
用 AI 迁项目有多爽?我把 Webpack 迁 Vite 的全过程记下来了
前端·架构
去伪存真5 小时前
Electron 自动化发布指南:GitHub Actions 跨平台打包全纪录
前端·electron
计算机魔术师5 小时前
OpenAI智能体失控闯进美国政府网站,53张用户图片外泄背后
前端
颜进强5 小时前
14 · NestJS ExecutionContext 执行上下文:守卫、拦截器、过滤器拿到的"同一个 context",为什么能力不一样?
前端·后端·ai编程
程序员Flycan5 小时前
🚀 跨域终结者:前端代理服务器(Proxy)原理解析与配置总结
前端
怕浪猫5 小时前
顶级模型一句话,AI 写出了能玩的 QQ飞车
前端·面试·github
huakoh5 小时前
MCP 报错分不清?先看响应里是 result 还是 error
前端