underscorcejs集合1(詳情http://www.bootcss.com/p/underscore/#collections)

Underscore.js是一個很精幹的庫,壓縮後只有4KB。它提供了幾十種函數式編程的方法,彌補了標準庫的不足,大大方便了JavaScript的編程。MVC框架Backbone.js就將這個庫做爲本身的工具庫。除了能夠在瀏覽器環境使用,Underscore.js還能夠用於Node.js。編程

Underscor.js定義了一個下劃線(_)對象,函數庫的全部方法都屬於這個對象。這些方法大體上能夠分紅:集合(collection)、數組(array)、函數(function)、對象(object)和工具(utility)五大類。數組

集合相關方法

Javascript語言的數據集合,包括兩種結構:數組和對象。如下的方法同時適用於這兩種結構。瀏覽器

數組處理

數組處理指的是對數組元素進行加工。框架

map方法對集合的每一個成員依次進行某種操做,將返回的值依次存入一個新的數組。curl

_.map([1, 2, 3], function(num){ return num * 3; });
// [3, 6, 9]
_.map({one : 1, two : 2, three : 3}, function(num, key){ return num * 3; });
// [3, 6, 9]

each方法與map相似,依次對數組全部元素進行某種操做,不返回任何值。函數式編程

_.each([1, 2, 3], alert);
_.each({one : 1, two : 2, three : 3}, alert);

reduce方法依次對集合的每一個成員進行某種操做,而後將操做結果累計在某一個初始值之上,所有操做結束以後,返回累計的值。該方法接受三個參數。第一個參數是被處理的集合,第二個參數是對每一個成員進行操做的函數,第三個參數是累計用的變量。reduce方法的第二個參數是操做函數,它自己又接受兩個參數,第一個是累計用的變量,第二個是集合每一個成員的值。函數

_.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);
// 6

shuffle方法返回一個打亂次序的集合工具

_.shuffle([1, 2, 3, 4, 5, 6]);
// [4, 1, 6, 3, 5, 2]

數組特徵

Underscore.js提供了一系列方法,判斷數組元素的特徵。這些方法都返回一個布爾值,表示是否知足條件。url

every方法判斷數組的全部元素是否都知足某個條件。若是都知足則返回true,不然返回false。spa

_.every([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
// false

some方法則是隻要有一個元素知足,就返回true,不然返回false。

_.some([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
// true

size方法返回集合的成員數量。

_.size({one : 1, two : 2, three : 3});
// 3

數組過濾

Underscore.js提供了一系列方法,用於過濾數組,找到符合要求的成員。

filter方法依次對集合的每一個成員進行某種操做,只返回操做結果爲true的成員。

_.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
// [2, 4, 6]

reject方法只返回操做結果爲false的成員。

_.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
// [1, 3, 5]

find方法依次對集合的每一個成員進行某種操做,返回第一個操做結果爲true的成員。若是全部成員的操做結果都爲false,則返回undefined

_.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
// 2

contains方法表示若是某個值在數組內,則返回true,不然返回false。

_.contains([1, 2, 3], 3);
// true

countBy方法依次對集合的每一個成員進行某種操做,將操做結果相同的成員算做一類,最後返回一個對象,代表每種操做結果對應的成員數量。

_.countBy([1, 2, 3, 4, 5], function(num) {
return num % 2 == 0 ? 'even' : 'odd';
});
// {odd: 3, even: 2}

對象相關方法

toArray方法將對象轉爲數組,只包含對象成員的值。典型應用是將對相似數組的對象轉爲真正的數組。

_.toArray({a:0,b:1,c:2});
// [0, 1, 2]

pluck方法將多個對象的某一個屬性的值,提取成一個數組。

var stooges = [{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}];
_.pluck(stooges, 'name');
// ["moe", "larry", "curly"]
相關文章
相關標籤/搜索