underscore 常用的方法

2021-08-09 07:09:03 字數 2056 閱讀 2244

參考文件      

collection

map 類似array.map 但是返回的是物件

filter  返回陣列,對於nodelist 返回的是document 節點

every   返回boolean  迭代的列表每個都是true才會返回 true  

some  返回boolean 迭代的列表有乙個為true 就返回true

min  返回最小值    如果是物件的話  第二個引數可以屬性名,只是比較這個屬性

max  返回最大值   類似min

groupby(list, iteratee) eg:

_.groupby([1.3, 2.1, 2.4], function(num));

=>

shuffle  打亂乙個集合

sample(list,[n])   隨機返回n個元素

array 

first(list,[n])  獲取陣列的第乙個元素,可選引數n 表示返回陣列的前n個元素

last(list, [n]) 獲取陣列的最後乙個元素, 可選引數n表示返回陣列的最後n個元素

flatten(list, [shallow])  將多維陣列轉成一維陣列 , shallow=true  只是減少乙個維度

zip(*array)  將多維陣列對應的index合併到一起 

unzip(array)  和zip相反

object(list ,[values])  將陣列轉成物件(和zip相比, 將第乙個陣列的value轉成了物件的index)  倆種用法  a. [index, value] 轉成  b. [a,,b], [c,d] 

range([start],stop, [step])  根據範圍建立陣列,包含指定的元素  類似與php 區別在於 a. underscore不支援 _.range("a","c")  b. underscore 不包含stop  php 包含

function

bind(function, object)   乙個變數fn如果執行了乙個物件s的方法時 會丟失對this的引用 fn()這樣呼叫是不行的   bind的第二個引數 可以繫結this為物件s

(當然變數繫結的是不是物件的方法的時候, 是可以fn())

partial(function, *arguments)   乙個函式多個引數的話  可以使用這個方法固定常用的引數  引數的佔位符是'_'  eg:var pown3 = _.partial(math.pow, _, 3); // x^3

memoize(function)  快取函式的計算資訊,當引數不同的時候 會重新呼叫

once(function)  某個函式無論如何都是只是呼叫一次

delay(function, waittime, *arguments)  延遲執行乙個函式

object 

keys(object)  獲取物件屬性名稱, 返回陣列

allkeys(object) 除了返回自身的key  也返回繼承的key

values(object)  返回陣列,包含所有自身的values 不存在函式allvalues

mapobecjt (object,iteratee)  返回陣列, 迭代物件的每個元素

invert(object)  物件反轉 (key和value交換)

extend(destination, *source)  將多個物件合併,屬性相同,後面的優先順序大  

extendown(destination, *source) 只是合併本身的屬性

clone(object)   返回淺層copy的物件  兩者屬性指向同一位址空間,(string number null undefine boolean 屬於不可以修改的資料型別, 只會被賦值) 在屬性被修改的

兩者都會變化

isequal(object,other) 深層比較兩個物件是不是相等 

var stooge = ;

var clone = ;

stooge == clone;

=> false

_.isequal(stooge, clone);

=> true

underscore的簡單了解

1.underscore 乙個封裝好的js工具庫,它提供了一整套函式式程式設計的使用功能,但是沒有擴充套件任何js內建物件。它解決了這個問題 如果我面對乙個空白的html,並希望立即開始工作,我需要什麼?2.zip var require underscore 演示 var names 張三 李四 ...

underscore的bind和bindAll方法

bind方法和bindall方法都是用來設定函式的this值的,區別是呼叫方式不同。var xiaoming bind var func bind xiaoming,xiaoming.say func i am xiaoming bindall bindall xiaoming,say var fu...

underscore中的map怎麼實現

這裡具體講講map內部結構。map function obj,iteratee,context return result 返回新的陣列 函式中呼叫cb函式 var cb function iteratee,context,count if isfunction iteratee cb的作用 判斷i...