📜  Underscore.JS-快速指南

📅  最后修改于: 2020-10-19 04:03:06             🧑  作者: Mango


Underscore.JS-概述

Underscore.JS是一个流行的基于javascript的库,提供了100多种功能来促进Web开发。它提供了诸如地图,过滤器,调用以及函数绑定,javascript模板,深度相等检查,创建索引等辅助功能。 Underscore.JS可以直接在浏览器内部使用,也可以与Node.js一起使用。

使用JavaScript处理对象可能会非常困难,特别是如果您要对它们进行大量操作的话。 Underscore具有许多功能,可简化对象的工作。

Underscore.JS是一个开源项目,您可以轻松地为该库做出贡献,并以插件的形式添加功能,并使其在GitHub和Node.js中可用。

特征

让我们详细了解Underscore可用的所有重要功能-

馆藏

Underscore.JS为集合提供了各种功能,例如每个,映射,reduce,这些功能用于对集合的每个项目应用操作。它提供了诸如groupBy,countBy,max,min之类的方法来处理集合并简化许多任务。

数组

Underscore.JS为数组提供了各种功能,例如迭代和处理数组,例如first,initial,lastIndexOf,intersection,difference等。

功能

Underscore.JS提供了诸如bind,delay,before,after等功能。

对象

Underscore.JS提供了用于操作对象,映射对象和比较对象的函数。例如,键,值,extends,extendOwn,isEqual,isEmpty等。

实用工具

Underscore.JS提供了各种实用程序方法,例如noConflict,random,iteratee,escape等。

链式

Underscore.JS提供链接方法以及链接,值。

在随后的章节中,我们将介绍Underscore.JS的重要功能。

Underscore.JS-环境设置

在本章中,您将详细了解如何在本地计算机上设置Underscore.JS的工作环境。在开始使用Underscore.JS之前,您需要有权访问该库。您可以通过以下任何方法访问其文件-

方法1:在浏览器中使用Underscore.JS文件

在这种方法中,我们将需要其官方网站上的Underscore.JS文件,并将其直接在浏览器中使用。

第1步

第一步,请访问Underscore.JS的官方网站https://underscorejs.org/

请注意,这里有一个下载选项,为您提供了最新的underscore-min.js文件UMD(生产) 。右键单击链接,然后选择另存为。请注意,该文件在有无缩小的情况下都可用。

第2步

现在,在脚本标记中包含underscore-min.js并开始使用Underscore.JS 。为此,您可以使用下面给出的代码-


这里给出了一个工作示例及其输出,以更好地理解-

Underscore.JS - Working Example
      
      
   
   
      

输出

方法2:使用Node.js

如果选择此方法,请确保在系统上安装了Node.jsnpm 。您可以使用以下命令安装Underscore.JS-

npm install underscore

成功安装Underscore.JS后,您可以观察到以下输出-

+ underscore@1.10.2
added 1 package from 1 contributor and audited 1 package in 6.331s
found 0 vulnerabilities

现在,要测试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具有许多易于使用的方法,有助于迭代Collections。本章将详细讨论它们。

Underscore.JS提供了多种方法来迭代Collections,如下所示-

Sr.No. Method & Syntax
1 each

_.each(list, iteratee, [context])

2 map

_.map(list, iteratee, [context])

3 reduce

_.reduce(list, iteratee, [memo], [context])

4 reduceRight

_.reduceRight(list, iteratee, [memo], [context])

5 find

_.find(list, predicate, [context])

6 filter

_.filter(list, predicate, [context])

7 where

_.where(list, properties)

8 findWhere

_.findWhere(list, properties)

9 reject

_.reject(list, predicate, [context])

10 every

_.every(list, [predicate], [context])

11 some

_.some(list, [predicate], [context])

Underscore.JS-处理集合

Underscore.JS具有许多易于使用的方法,可帮助处理Collections。本章将详细讨论它们。

Underscore.JS提供了多种方法来处理集合,如下所示-

Sr.No. Method & Syntax
1 contains

_.contains(list, value, [fromIndex])

2 invoke

_.invoke(list, methodName, *arguments)

3 pluck

_.pluck(list, propertyName)

4 max

_.max(list, [iteratee], [context])

5 min

_.min(list, [iteratee], [context])

6 sortBy

_.sortBy(list, iteratee, [context])

7 groupBy

_.groupBy(list, iteratee, [context])

8 indexBy

_.indexBy(list, iteratee, [context])

9 countBy

_.countBy(list, iteratee, [context])

10 shuffle

_.shuffle(list)

11 sample

_.sample(list, [n])

12 toArray

_.toArray(list)

13 size

_.size(list)

14 partition

_.partition(list, predicate)

15 compact

_.compact(list)

Underscore.JS-迭代数组

Underscore.JS具有许多易于使用的方法,可帮助迭代数组。本章将详细讨论它们。

Underscore.JS提供了多种方法来迭代数组,如下所示-

Sr.No. Method & Syntax
1 first

_.first(array, [n])

2 initial

_.initial(array, [n])

3 last

_.last(array, [n])

4 rest

_.rest(array, [index])

5 indexOf

_.indexOf(array, value, [isSorted])

6 lastIndexOf

_.lastIndexOf(array, value, [fromIndex])

7 sortedIndex

_.sortedIndex(array, value, [iteratee], [context])

8 findIndex

_.findIndex(array, predicate, [context])

9 findLastIndex

_.findLastIndex(array, predicate, [context])

Underscore.JS-处理数组

Underscore.JS具有许多易于使用的方法,可帮助处理数组。本章将详细讨论它们。

Underscore.JS提供了多种方法来处理数组,如下所示-

Sr.No. Method & Syntax
1 flatten

_.flatten(array, [shallow])

2 without

_.without(array, *values)

3 union

_.union(*arrays)

4 intersection

_.intersection(*arrays)

5 difference

_.difference(array, *others)

6 uniq

_.uniq(array, [isSorted], [iteratee])

7 zip

_.zip(*arrays)

8 unzip

_.unzip(array)

9 object

_.object(list, [values])

10 chunk

_.chunk(array, length)

11 range

_.range([start], stop, [step])

Underscore.JS-函数

Underscore.JS具有许多易于使用的方法,有助于处理函数。本章将详细讨论它们。

Underscore.JS提供了多种方法来处理以下功能:

Sr.No. Method & Syntax
1 bind

_.bind(function, object, *arguments)

2 partial

_.partial(function, *arguments)

3 memoize

_.memoize(function, [hashFunction])

4 delay

_.delay(function, wait, *arguments)

5 once

_.once(function)

6 before

_.before(count, function)

7 wrap

_.wrap(function, wrapper)

8 negate

_.negate(predicate)

9 compose

_.compose(*functions)

Underscore.JS-映射对象

Underscore.JS具有许多易于使用的方法,可帮助映射对象。本章将详细讨论它们。

Underscore.JS提供了多种方法来处理对象映射,如下所示-

Sr.No. Method & Syntax
1 keys

_.keys(object)

2 allKeys

_.allKeys(object)

3 values

_.values(object)

4 mapObject

_.mapObject(object, iteratee, [context])

5 pairs

_.pairs(object)

6 invert

_.invert(object)

7 create

_.create(prototype, props)

8 functions

_.functions(object)

9 findKey

_.findKey(object, predicate, [context])

Underscore.JS-更新对象

Underscore.JS具有许多易于使用的方法,可帮助更新对象。本章将详细讨论它们。

Underscore.JS提供了多种方法来处理对象更新,如下所示-

Sr.No. Method & Syntax
1 extend

_.extend(destination, *sources)

2 pick

_.pick(object, *keys)

3 omit

_.omit(object, *keys)

4 defaults

_.defaults(object, *defaults)

5 clone

_.clone(object)

6 tap

_.tap(object, interceptor)

7 has

_.has(object, key)

8 property

_.property(path)

9 propertyOf

_.propertyOf(object)

Underscore.JS-比较对象

Underscore.JS具有许多易于使用的方法,可帮助比较对象。本章将详细讨论它们。

Underscore.JS提供了多种方法来处理对象比较,如下所示-

Sr.No. Method & Syntax
1 matcher

_.matcher(attrs)

2 isEqual

_.isEqual(object, other)

3 isMatch

_.isMatch(object, properties)

4 isEmpty

_.isEmpty(object)

5 isArray

_.isArray(object)

6 isObject

_.isObject(value)

7 isArguments

_.isArguments(object)

8 isFunction

_.isFunction(object)

9 isString

_.isString(object)

10 isNumber

_.isNumber(object)

11 isFinite

_.isFinite(object)

12 isBoolean

_.isBoolean(object)

13 isDate

_.isDate(object)

14 isRegExp

_.isRegExp(object)

15 isError

_.isError(object)

16 isSymbol

_.isSymbol(object)

17 isMap

_.isMap(object)

18 isWeakMap

_.isWeakMap(object)

19 isSet

_.isSet(object)

20 isWeakSet

_.isWeakSet(object)

21 isNaN

_.isNaN(object)

22 isNull

_.isNull(object)

23 isUndefined

_.isUndefined(value)

Underscore.JS-实用工具

Underscore.JS具有许多易于使用的实用程序方法。本章将详细讨论它们。

Underscore.JS提供了以下列出的各种实用程序方法-

Sr.No. Method & Syntax
1 identity

_.identity(value)

2 constant

_.constant(value)

3 noop

_.noop()

4 times

_.times(n, iteratee, [context])

5 random

_.random(min, max)

6 mixin

_.mixin(object)

7 iteratee

_.iteratee(value, [context])

8 uniqueId

_.uniqueId([prefix])

9 escape

_.escape(string)

10 unescape

_.unescape(string)

11 result

_.result(object, property, [defaultValue])

12 now

_.now()

13 template

_.template(templateString, [settings])

Underscore.JS-链接

Underscore.JS具有创建一系列方法然后检索其有效结果的方法。本章将详细讨论它们。

Underscore.JS提供了以下列出的各种实用程序方法-

Sr.No. Method & Syntax
1 chain

_.chain(object)

2 value

_.chain(obj).value()