Node.js underscore

Underscore(npm install underscore)是目前为止NPM上最流行的JavaScript库,是有最大数量dependent的库。

它被称为underscore是因为它在浏览器中使用时创建一个全局变量“_”。

在node中,我们可以将从require(“underscore”)返回的变量命名为任何我们想要的变量,但是通常仍然做 var _ = require(“underscore")

Underscore为JavaScript提供了大量的函数式编程支持。

filter

要在数字数组中过滤大于100的元素。

函数_.filter接受一个数组,将数组的每个元素传递给一个函数(第二个参数),并返回一个包含第二个函数返回true的所有元素的数组。

  1. var foo = [1111, 10, 50, 200, 9, 90, 40];
  2. var _ = require("underscore");
  3. var results = _.filter(foo, function (item) { return item > 100 });
  4. console.log(results);

_.map函数接受一个数组,为数组的每个元素调用一个函数存储返回值作为结果,并返回一个由所有结果组成的新数组。基本上通过函数将输入数组映射到输出数组。将数组的每个元素乘以2。

map

如下所示,我们可以很简单地使用_.map。

  1. var foo = [1, 2, 3, 4];
  2. var _ = require("underscore");
  3. var results = _.map(foo, function (item) { return item * 2 });
  4. console.log(results);

获取集合中除符合条件的元素之外的所有元素。

reject

为此,我们可以使用_.reject。

获取数组中的奇数元素的示例如下所示。

  1. var _ = require("underscore");
  2. var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
  3. console.log(odds); // [1, 3, 5]

要获取数组的最大元素使用.max,获取最小使用.min:

  1. var _ = require("underscore");
  2. var numbers = [10, 5, 100, 2, 1000];
  3. console.log(_.min(numbers)); // 2
  4. console.log(_.max(numbers)); // 1000