在前端开发中,我们经常需要对一些数据进行处理、过滤、排序等操作。而现代的 JavaScript 开发中,使用函数式编程已经成为了一个趋势。@edsilv/exjs 就是一个便捷的函数式编程工具库,可以方便地对数据进行各种操作。
安装
@edsilv/exjs 是一个 Node.js 的 npm 包,因此你需要先安装 Node.js。
然后,在你的项目根目录下打开终端(terminal 或 cmd),输入以下命令:
npm install @edsilv/exjs
使用方法
引入包
安装完成后,你需要在项目中引入 @edsilv/exjs。
const exjs = require('@edsilv/exjs');
也可以使用 ES6 模块语法:
import * as exjs from '@edsilv/exjs';
基本用法
我们先来看一个例子。如下面的数组:
const arr = [1, 2, 3, 4, 5, 6];
如果我们想对这个数组进行每个元素加平方的操作,即得到 [1, 4, 9, 16, 25, 36]。
传统的做法是用 for 循环遍历,然后将每个元素进行平方操作,如下:
const arr1 = []; for (let i = 0; i < arr.length; i++) { arr1.push(arr[i] * arr[i]); }
而使用 @edsilv/exjs,只需要一行代码就能搞定:
const arr2 = exjs.from(arr).select(item => item * item).toArray();
这行代码分为三个部分:
exjs.from(arr)
:将数组转化为一个可枚举的数据源。.select(item => item * item)
:对数据源中的每个元素进行操作。.toArray()
:将处理后的数据转化为一个数组。
from
exjs.from 方法可以将任何一个可迭代的对象转化成 exjs 可以操作的数据源。支持的对象类型包括数组、Map、Set、字符串等。
-- -------------------- ---- ------- -- -- ----- --- - --- -- --- --------------- -- --- ----- --- - --- ----- -------- ------ ------- --- --- --------------- -- --- ----- --- - --- ------- -- ---- --------------- -- --- ----- --- - ------- ---------------
select
exjs.select 方法可以对数据源中的每个元素进行操作。
const arr = [1, 2, 3]; exjs.from(arr) .select(item => item * item) // 对每个元素进行平方操作 .toArray(); // 将处理后的结果转化为数组 // [1, 4, 9]
where
exjs.where 方法可以根据特定的条件过滤数据源中的元素。
const arr = [1, 2, 3, 4]; exjs.from(arr) .where(item => item % 2 === 0) // 过滤出数组中的偶数元素 .toArray(); // 将处理后的结果转化为数组 // [2, 4]
orderBy
exjs.orderBy 方法可以对数据源中的元素进行排序。
const arr = [1, 4, 2, 3]; exjs.from(arr) .orderBy() // 默认按升序排序 .toArray(); // 将处理后的结果转化为数组 // [1, 2, 3, 4]
可以给 exjs.orderBy
方法传递一个回调函数,来指定自定义排序规则。
-- -------------------- ---- ------- ----- --- - - - ----- ----- ---- -- -- - ----- ----- ---- -- -- - ----- ----- ---- -- - -- -------------- ------------- -- --------- -- -------- ----------- -- ------------ -- -- ----- ----- ---- -- -- - ----- ----- ---- -- -- - ----- ----- ---- -- --
groupBy
exjs.groupBy 方法可以对数据源中的元素进行分组。
-- -------------------- ---- ------- ----- --- - - - ----- ----- ---- -- -- - ----- ----- ---- -- -- - ----- ----- ---- -- - -- -------------- ------------- -- --------- -- -------- ----------- -- ------------ -- - - ---- --- ------- -- ----- ----- ---- -- -- - ----- ----- ---- -- -- -- - ---- --- ------- -- ----- ----- ---- -- -- - - --
join
exjs.join 方法可以将两个数据源进行联接操作。
-- -------------------- ---- ------- ----- ---- - - - ----- ----- ---- ------ -- - ----- ----- ---- -------- -- - ----- ----- ---- ------ - -- ----- ---- - - - ---- ------- ----- ---- -- - ---- --------- ----- ---- - -- --------------- ---------------------- -- ------ - -- ------ -- ------- - -- ------ -- -------- --- -- -- -- ----- ------- ---- ------ ----- ------ --- -- ----- ----------- -- ------------ -- - - ----- ----- ---- ------- ----- ---- -- - ----- ----- ---- --------- ----- ---- -- - ----- ----- ---- ------- ----- ---- - - --
复杂操作
exjs 可以进行复杂的操作组合,比如可以对数据源进行多次操作,然后再联接其他数据源,最后再进行排序。
-- -------------------- ---- ------- ----- ---- - - - ----- ----- ---- -- -- - ----- ----- ---- -- -- - ----- ----- ---- -- - -- ----- ---- - - - ----- ----- ------- ------ -- - ----- ----- ------- -------- -- - ----- ----- ------- ------ - -- --------------- ----------- -- -------- -- --- -- --------- -- --- ---------------------- - -- ------- - -- ------- --- -- -- -- ----- ------- ---- ------ ------- -------- --- ------------- -- --------- ----------- -- - - ----- ----- ---- --- ------- ------ -- - ----- ----- ---- --- ------- -------- - - --
总结
通过本文,你学习了 @edsilv/exjs 的基本用法,包括如何引入包、如何使用 from、select、where、orderBy、groupBy、join 等方法进行数据操作。
@edsilv/exjs 简化了数据操作的复杂度,使得我们可以更方便地使用函数式编程思想来处理数据。希望本教程能够帮助你掌握 @edsilv/exjs 的使用,并提高你在前端开发中的工作效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb548b5cbfe1ea0611403