- Underscore.JS 教程
- Underscore.JS - 主页
- Underscore.JS - 概述
- Underscore.JS - 环境设置
- Underscore.JS - 迭代集合
- Underscore.JS - 处理集合
- Underscore.JS - 迭代数组
- Underscore.JS - 处理数组
- Underscore.JS - 函数
- Underscore.JS - 映射对象
- Underscore.JS - 更新对象
- Underscore.JS - 比较对象
- Underscore.JS - 实用程序
- Underscore.JS - 链接
- Underscore.JS 有用资源
- Underscore.JS - 快速指南
- Underscore.JS - 有用的资源
- Underscore.JS - 讨论
Underscore.JS - 快速指南
Underscore.JS - 概述
Underscore.JS 是一个流行的基于 javascript 的库,它提供了 100 多个函数来促进 Web 开发。它提供了辅助函数,如映射、过滤器、调用以及函数绑定、JavaScript 模板、深度相等检查、创建索引等。Underscore.JS 可以直接在浏览器中使用,也可以与 Node.js 一起使用。
使用 JavaScript 处理对象可能非常具有挑战性,特别是当您需要对它们进行大量操作时。Underscore 附带许多功能,可以简化您使用对象的工作。
Underscore.JS 是一个开源项目,您可以轻松地为库做出贡献并以插件的形式添加功能,并使其在 GitHub 和 Node.js 中可用。
特征
让我们详细了解 Underscore 提供的所有重要功能 -
收藏
Underscore.JS 为集合提供了各种函数,例如 every、map、reduce,用于对集合的每个项目应用操作。它提供了像 groupBy、countBy、max、min 这样的方法来处理集合并简化大量任务。
数组
Underscore.JS 为数组提供了各种函数,例如迭代和处理数组,如first、initial、lastIndexOf、intersection、difference 等。
功能
Underscore.JS提供了bind、delay、before、after等函数。
对象
Underscore.JS 提供了操作对象、映射对象和比较对象的函数。例如,键、值、extends、extendsOwn、isEqual、isEmpty 等。
公用事业
Underscore.JS 提供了各种实用方法,如 noConflict、random、iteratee、escape 等。
链接
Underscore.JS 提供了链接方法,如 chain、value。
在后续章节中,我们将介绍 Underscore.JS 的重要功能
Underscore.JS - 环境设置
在本章中,您将详细了解如何在本地计算机上设置 Underscore.JS 的工作环境。在开始使用 Underscore.JS 之前,您需要有权访问该库。您可以通过以下任何方法访问其文件 -
方法一:在浏览器中使用Underscore.JS文件
在此方法中,我们需要从其官方网站获取 Underscore.JS 文件,并将直接在浏览器中使用它。
步骤1
第一步,访问 Underscore.JS 的官方网站https://underscorejs.org/。
请注意,有一个可用的下载选项,它为您提供最新的 underscore-min.js 文件UMD(生产)。右键单击该链接并选择另存为。请注意,文件可以缩小或不缩小。
第2步
现在,将underscore-min.js包含在脚本标记内并开始使用 Underscore.JS。为此,您可以使用下面给出的代码 -
<script type = "text/JavaScript" src = "https://underscorejs.org/underscore-min.js"></script>
这里给出一个工作示例及其输出,以便更好地理解 -
例子
<html> <head> <title>Underscore.JS - Working Example</title> <script type = "text/JavaScript" src = "https://underscorejs.org/underscore-min.js"></script> <style> div { border: solid 1px #ccc; padding:10px; font-family: "Segoe UI",Arial,sans-serif; width: 50%; } </style> </head> <body> <div style = "font-size:25px" id = "list"> </div> <script type = "text/JavaScript"> var numbers = [1, 2, 3, 4]; var listOfNumbers = ''; _.each(numbers, function(x) { listOfNumbers += x + ' ' }); document.getElementById("list").innerHTML = listOfNumbers; </script> </body> </html>
输出
方法2:使用Node.js
如果您选择此方法,请确保您的系统上安装了Node.js和npm。您可以使用以下命令来安装 Underscore.JS -
npm install underscore
成功安装 Underscore.JS 后,您可以观察到以下输出 -
+ 下划线@1.10.2 添加了来自 1 个贡献者的 1 个包,并在 6.331 秒内审核了 1 个包 发现0个漏洞
现在,要测试 Underscore.JS 是否可以与 Node.js 一起正常工作,请创建文件 tester.js 并向其中添加以下代码 -
var _ = require('underscore'); var numbers = [1, 2, 3, 4]; var listOfNumbers = ''; _.each(numbers, function(x) { listOfNumbers += x + ' ' }); console.log(listOfNumbers);
将上述程序保存在tester.js中。以下命令用于编译和执行该程序。
命令
\>node tester.js
输出
1 2 3 4
Underscore.JS - 迭代集合
Underscore.JS 有许多易于使用的方法,有助于迭代集合。本章详细讨论它们。
Underscore.JS 提供了各种方法来迭代集合,如下所示 -
先生。 | 方法和语法 |
---|---|
1 | 每个
_.each(列表, iteratee, [上下文]) |
2 | 地图
_.map(列表, iteratee, [上下文]) |
3 | 减少
_.reduce(列表, iteratee, [备忘录], [上下文]) |
4 | 减少右
_.reduceRight(列表, iteratee, [备忘录], [上下文]) |
5 | 寻找
_.find(列表、谓词、[上下文]) |
6 | 筛选
_.filter(列表、谓词、[上下文]) |
7 | 在哪里
_.where(列表,属性) |
8 | 查找地点
_.findWhere(列表,属性) |
9 | 拒绝
_.reject(列表、谓词、[上下文]) |
10 | 每一个
_.every(列表, [谓词], [上下文]) |
11 | 一些
_.some(列表, [谓词], [上下文]) |
Underscore.JS - 处理集合
Underscore.JS 有许多易于使用的方法,有助于处理集合。本章详细讨论它们。
Underscore.JS 提供了各种方法来处理集合,如下所示 -
先生。 | 方法和语法 |
---|---|
1 | 包含
_.contains(列表, 值, [fromIndex]) |
2 | 调用
_.invoke(列表, 方法名, *参数) |
3 | 采摘
_.pluck(列表, 属性名称) |
4 | 最大限度
_.max(列表, [迭代对象], [上下文]) |
5 | 分钟
_.min(列表, [迭代对象], [上下文]) |
6 | 排序方式
_.sortBy(列表, iteratee, [上下文]) |
7 | 通过...分组
_.groupBy(列表, iteratee, [上下文]) |
8 | 索引依据
_.indexBy(列表, iteratee, [上下文]) |
9 | 计数依据
_.countBy(列表, iteratee, [上下文]) |
10 | 随机播放
_.shuffle(列表) |
11 | 样本
_.sample(列表,[n]) |
12 | 到数组
_.toArray(列表) |
13 | 尺寸
_.大小(列表) |
14 | 分割
_.partition(列表,谓词) |
15 | 袖珍的
_.紧凑(列表) |
Underscore.JS - 迭代数组
Underscore.JS 有许多易于使用的方法,有助于迭代数组。本章详细讨论它们。
Underscore.JS 提供了各种方法来迭代数组,如下所示 -
先生。 | 方法和语法 |
---|---|
1 | 第一的
_.first(数组, [n]) |
2 | 最初的
_.initial(数组, [n]) |
3 | 最后的
_.last(数组, [n]) |
4 | 休息
_.rest(数组,[索引]) |
5 | 指数
_.indexOf(数组,值,[已排序]) |
6 | 最后一个索引
_.lastIndexOf(数组, 值, [fromIndex]) |
7 | 排序索引
_.sortedIndex(数组,值,[iteratee],[上下文]) |
8 | 查找索引
_.findIndex(数组、谓词、[上下文]) |
9 | 查找最后一个索引
_.findLastIndex(数组,谓词,[上下文]) |
Underscore.JS - 处理数组
Underscore.JS 有许多易于使用的方法,有助于处理数组。本章详细讨论它们。
Underscore.JS 提供了处理数组的各种方法,如下所示 -
先生。 | 方法和语法 |
---|---|
1 | 压扁
_.展平(数组,[浅]) |
2 | 没有
_.without(数组, *值) |
3 | 联盟
_.union(*数组) |
4 | 路口
_.intersection(*数组) |
5 | 不同之处
_.difference(数组, *其他) |
6 | 独特的
_.uniq(数组, [isSorted], [iteratee]) |
7 | 压缩
_.zip(*数组) |
8 | 解压
_.unzip(数组) |
9 | 目的
_.object(列表, [值]) |
10 | 块
_.chunk(数组,长度) |
11 | 范围
_.range([开始], 停止, [步骤]) |
Underscore.JS - 函数
Underscore.JS 有许多易于使用的方法,有助于处理函数。本章详细讨论它们。
Underscore.JS 提供了各种方法来处理函数,如下所示 -
先生。 | 方法和语法 |
---|---|
1 | 绑定
_.bind(函数、对象、*参数) |
2 | 部分的
_.partial(函数, *参数) |
3 | 记忆
_.memoize(函数, [hashFunction]) |
4 | 延迟
_.delay(函数,等待,*参数) |
5 | 一次
_.once(函数) |
6 | 前
_.before(计数,函数) |
7 | 裹
_.wrap(函数,包装器) |
8 | 否定
_.negate(谓词) |
9 | 撰写
_.compose(*函数) |
Underscore.JS - 映射对象
Underscore.JS 有许多易于使用的方法,有助于映射对象。本章详细讨论它们。
Underscore.JS 提供了各种方法来处理对象映射,如下所示 -
先生。 | 方法和语法 |
---|---|
1 | 键
_.keys(对象) |
2 | 所有键
_.allKeys(对象) |
3 | 价值观
_.values(对象) |
4 | 地图对象
_.mapObject(对象, iteratee, [上下文]) |
5 | 对
_.pairs(对象) |
6 | 倒置
_.invert(对象) |
7 | 创造
_.create(原型,道具) |
8 | 功能
_.函数(对象) |
9 | 查找密钥
_.findKey(对象、谓词、[上下文]) |
Underscore.JS - 更新对象
Underscore.JS 有许多易于使用的方法,有助于更新对象。本章详细讨论它们。
Underscore.JS 提供了各种方法来处理对象更新,如下所示 -
先生。 | 方法和语法 |
---|---|
1 | 延长
_.extend(目标,*源) |
2 | 挑选
_.pick(对象, *键) |
3 | 忽略
_.省略(对象,*键) |
4 | 默认值
_.defaults(对象, *defaults) |
5 | 克隆
_.克隆(对象) |
6 | 轻敲
_.tap(对象,拦截器) |
7 | 有
_.has(对象,键) |
8 | 财产
_.属性(路径) |
9 | 属性
_.propertyOf(对象) |
Underscore.JS - 比较对象
Underscore.JS 有许多易于使用的方法,有助于比较对象。本章详细讨论它们。
Underscore.JS 提供了各种方法来处理对象比较,如下所示 -
先生。 | 方法和语法 |
---|---|
1 | 匹配器
_.matcher(属性) |
2 | 是平等的
_.isEqual(对象, 其他) |
3 | 是否匹配
_.isMatch(对象,属性) |
4 | 是空的
_.isEmpty(对象) |
5 | 是数组
_.isArray(对象) |
6 | 是对象
_.isObject(值) |
7 | isArguments
_.isArguments(对象) |
8 | 是函数
_.isFunction(对象) |
9 | 是字符串
_.isString(对象) |
10 | 是编号
_.isNumber(对象) |
11 | 是有限的
_.isFinite(对象) |
12 | 是布尔值
_.isBoolean(对象) |
13 | 是日期
_.isDate(对象) |
14 | 是正则表达式
_.isRegExp(对象) |
15 | 错误
_.isError(对象) |
16 | 是符号
_.isSymbol(对象) |
17 号 | 是地图
_.isMap(对象) |
18 | 是弱映射
_.isWeakMap(对象) |
19 | 已设置
_.isSet(对象) |
20 | 是弱集
_.isWeakSet(对象) |
21 | 为 NaN
_.isNaN(对象) |
22 | 一片空白
_.isNull(对象) |
23 | 未定义
_.isUndefined(值) |
Underscore.JS - 实用程序
Underscore.JS 有许多易于使用的实用方法。本章详细讨论它们。
Underscore.JS 提供了各种实用方法,如下所列 -
先生。 | 方法和语法 |
---|---|
1 | 身份
_.身份(值) |
2 | 持续的
_.常量(值) |
3 | 努普
_.noop() |
4 | 次
_.times(n, iteratee, [上下文]) |
5 | 随机的
_.随机(最小值,最大值) |
6 | 混合
_.mixin(对象) |
7 | 迭代者
_.iteratee(值, [上下文]) |
8 | 唯一身份
_.uniqueId([前缀]) |
9 | 逃脱
_.escape(字符串) |
10 | 逃脱
_.unescape(字符串) |
11 | 结果
_.结果(对象,属性,[默认值]) |
12 | 现在
_。现在() |
13 | 模板
_.template(templateString, [设置]) |
Underscore.JS - 链接
Underscore.JS 具有创建方法链然后检索其有效结果的方法。本章详细讨论它们。
Underscore.JS 提供了各种实用方法,如下所列 -