Underscore(npm install underscore)是目前为止NPM上最流行的JavaScript库,是有最大数量dependent的库。
它被称为underscore是因为它在浏览器中使用时创建一个全局变量“_”。
在node中,我们可以将从require(“underscore”)返回的变量命名为任何我们想要的变量,但是通常仍然做 var _ = require(“underscore")
。
Underscore为JavaScript提供了大量的函数式编程支持。
filter
要在数字数组中过滤大于100的元素。
函数_.filter接受一个数组,将数组的每个元素传递给一个函数(第二个参数),并返回一个包含第二个函数返回true的所有元素的数组。
var foo = [1111, 10, 50, 200, 9, 90, 40]; var _ = require("underscore"); var results = _.filter(foo, function (item) { return item > 100 }); console.log(results);
_.map函数接受一个数组,为数组的每个元素调用一个函数存储返回值作为结果,并返回一个由所有结果组成的新数组。基本上通过函数将输入数组映射到输出数组。将数组的每个元素乘以2。
map
如下所示,我们可以很简单地使用_.map。
var foo = [1, 2, 3, 4]; var _ = require("underscore"); var results = _.map(foo, function (item) { return item * 2 }); console.log(results);
获取集合中除符合条件的元素之外的所有元素。
reject
为此,我们可以使用_.reject。
获取数组中的奇数元素的示例如下所示。
var _ = require("underscore"); var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); console.log(odds); // [1, 3, 5]
要获取数组的最大元素使用_.max,获取最小使用_.min:
var _ = require("underscore"); var numbers = [10, 5, 100, 2, 1000]; console.log(_.min(numbers)); // 2 console.log(_.max(numbers)); // 1000