Underscore.js詳解第二篇: Arrays

Underscore.js詳解第一篇: Collections後,這是第二篇,Underscore的Array method各個用法如下:

_.first(array, [n]) Alias: head, take
說明:回傳陣列元素值,n為指定回傳幾個
ex.


_.initial(array, [n])

說明:類似_.first,只不過從Array的最後一個數回,n為拋棄最後幾個
ex.

_.last(array, [n])
說明:類似_.first,只不過從Array的最後元素返回,n為保留最後幾個
ex.

_.rest(array, index)
說明:從第index個起,保留後面的全部元素
ex.

_.compact(array)
說明:Array裡若有0,false,"",NaN,undefined,null,就將之移除
ex.

_.flatten(array,[shallow])
說明:將一個多個巢狀的多維陣列的所有元素值平坦化為一維陣列,若shallow為true,則只向下平坦化一層
ex.

_.without(array,[*values])
說明:將指定的value值從Array中移除,values可以指定多個
ex.

_.union(*arrays)
說明:將多個array集合成一個array,只取不重複元素值
ex.

_.intersection(*arrays)
說明:將多個array集合成一個array,只取每個array都有的元素值
ex.

_.difference(array,[*values])
說明:類似without,但定義上有點不同,without的定義是將values值從array中剔除,diffrence則是只要values裡面沒有的元素統統回傳
ex.

_.uniq(array,[isSorted],[iterator]) Alias:unique
說明:把一個array做uniq,若已預先知道array已排序過,則isSorted可以給它true,這樣可以更快一些,若有需要還可以增加callback function
註:若array無排序過但isSorted傳給它true,將會傳回不是你要的結果

_.zip(*array) 
說明:把每個array的相同index值集合在同一個array,主要用在如果你有相同的index值需要做集合的時候特別有用

_.object(list,[values]) 
說明:把array轉換成array,list:values對應key:values

_.indexOf(array,value,[isSorted]) 
說明:傳回value在array裡的index值,若你知道該array已經排序過isSorted可以給它true,這樣可以執行比較快一點

_.lastIndexOf(array,value,[fromIndex]) 
說明:傳回最後一個value在array裡的index值,fromIndex則可以指定從第幾個index值開始

_.sorteIndex(list,array,[iterator],[context]) 
說明:傳回你要插入的值應該從array的第幾個index開始,iterator可以指定你要以什麼排序

_.range([start],stop,[step]) 
說明:range可以用來製造array,start為第0個值,stop為最終值 ,step為元素隔間值

以上為underscore.js的arrays全部用法,underscore.js真的是很好用的plugin,可以 讓你的javascript code更簡潔,用更少的code完成更多的事,以上詳解供大家參考。

發表迴響