介绍
ngLinq 是基于 Linq-to-Object 库的 AngularJS 连接器,在大型数据集上提供方便的查询功能。ngLinq 不需要任何后端服务器即可工作。使用 ngLinq 可以直接在浏览器内部查询 Array 数组。
安装
通过 npm 进行安装,命令如下:
npm install nglinq
使用方法
引入
引入 ngLinq:
<script src="nglinq.js"></script>
或者使用 npm 安装之后,在自己的 Angular 项目中引入:
import * as ngLinq from 'nglinq';
基本查询
下面是 ngLinq 的基本查询方法:
-- -------------------- ---- ------- --- ---- - -- ----- ------- ---- --- ------- ------ -- - ----- -------- ---- --- ------- -------- -- - ----- ------ ---- --- ------- ------ --- --- ----- - ----------------- -------- -- ----- - -- -- -------- -- ------- --------- -- -------- --- ------ - ---------------- -- -- -------
在上面的代码中,我们从一个包含三个人员信息的数组中查询出了男性且年龄大于 20 岁的人员姓名。
支持的方法
ngLinq 支持的方法有:
- where: 选择满足指定条件的元素,并返回一个新的序列
- select: 将序列元素转换为新的类型,并返回一个新的序列
- orderBy: 根据指定条件返回升序序列,可以使用多个 orderBy 进行级联排序
- orderByDescending: 根据指定条件返回降序序列,可以使用多个 orderByDescending 进行级联排序
- groupBy: 通过指定关键字将序列分组,并返回一个新的序列
- groupByMany: 通过指定多个关键字将序列分组,并返回一个新的序列
- distinct: 返回序列中去重后的元素
- first: 返回满足条件的第一个元素,如果不存在则返回 undefined
- last: 返回满足条件的最后一个元素,如果不存在则返回 undefined
- single: 返回一个或零个满足指定条件的元素,如果序列中没有符合条件的元素,则返回 undefined
- skip: 返回跳过指定元素后的新序列
- take: 返回指定数量的元素组成的新序列
- aggregate: 对序列中的元素执行累加操作,并返回累加结果
- join: 连接两个序列中的元素,并返回一个新序列
- any: 返回序列中是否包含满足指定条件的元素
- all: 返回序列中是否所有元素都满足指定条件
- count: 返回序列中元素的数量
- sum: 返回序列中元素的总和
- average: 返回序列中元素的平均数
- max: 返回序列中元素的最大值
- min: 返回序列中元素的最小值
高级查询
ngLinq 支持一些高级查询操作。下面是一个示例,展示了如何使用 groupBy 和 orderBy 来执行高级查询:
-- -------------------- ---- ------- --- ---- - -- ----- ------- ---- --- ------- ------ -- - ----- -------- ---- --- ------- -------- -- - ----- ------ ---- --- ------- ------ --- --- ----- - ----------------- ---------- -- --------- -------------------- -- ---------- --------- -- - ------ - ------- -------- ------ ---------- ----------- ----------- -- ------ -- --- --- ------ - ---------------- -- -- --------- ------- ------ -- ----------- ------ -------- --------- ------ -- ----------- ----
在上面的代码中,我们首先将数组按照性别分组,然后按照每个组包含的元素数量倒序排列。最后,我们将结果映射为一个包含性别、人数以及平均年龄的对象数组。这样我们就获得了每种性别的人数和平均年龄。
总结
ngLinq 是一个非常简单,却又实用的库,可以帮助我们在 AngularJS 应用中更方便地进行数组操作。希望本篇文章能够对你理解 ngLinq 的使用有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600560b481e8991b448defe5