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.jsnpm。您可以使用以下命令来安装 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 提供了各种实用方法,如下所列 -

先生。 方法和语法
1

_.链(对象)

2 价值

_.chain(obj).value()