陪你讀一遍loadash(三)

接下來的五個方法都是對有序數(shù)組進行的方法函匕,我也會對其中原理進行描述,以便于理解如果對無序數(shù)組進行操作的返回結果毫痕。

1 _.sortedIndex(array , value)

Uses a binary search to determine the lowest index at which value  should be inserted into array in order to maintain its sort order.

使用二分查找來確定傳入的值插入數(shù)組的最小索引。
簡而言之這個過程就是用待插入的元素與數(shù)組元素進行比較赦肃,如果遇到數(shù)組元素不小于插入元素并且后面的元素遇到比該元素大适室,則將元素插入更大元素的前面,返回當前插入元素的索引值馏艾,不再繼續(xù)比較劳曹,如果數(shù)組所有元素比待插入的元素值要大奴愉,則返回0,相反铁孵,如果數(shù)組所有元素比待插入的元素值要小锭硼,則返回array.length-1。

例:_.sortedIndex([1,2,3],1);//1
_.sortedIndex([1,2,1,3],1);//1
_.sortedIndex([6,6,6],1);//0

2 _.sortedIndexOf(array ,value)

This method is like [_.indexOf])except that it performs a binary search on a sorted array.

這個方法類似數(shù)組中的indexof()方法蜕劝。從前往后遍歷數(shù)組返回檀头,第一個匹配上元素的索引,如果沒有匹配到則返回-1岖沛。

例:_.sortedIndexof([1,2,3],2);//1
_.sortedIndexof([1,2,3,1,2],2);//1
_.sortedIndexof([1,2,3,1,2],6);//-1

3 _.sortedLastIndex(array ,value)

This method is like [_.sortedIndex]() except that it returns the highest index at which value should be inserted into array in order to maintain its sort order.

 這個方法類似上面講過的_.sortedIndex方法鳖擒,與之不同的是遍歷數(shù)組會從后往前進行遍歷。規(guī)則和sortedIndex方法一樣烫止。

例:_.sortedLastIndex([4,5,5,5,6],5)//4

4 _.sortedLastIndexOf(array,value)

This method is like [_.lastIndexOf] except that it performs a binary search on a sorted array.

 這個方法類似上面講過的_.sortedIndexof方法蒋荚,與之不同的是遍歷數(shù)組會從后往前進行遍歷。規(guī)則和sortedIndexof方法一樣馆蠕。

  例:_.sortedLastIndexOf([4,5,5,5,6],5);//3

5 _.sortedUniq(array)

  This method is like [_.uniq] except that it's designed and optimized for sorted arrays.    

  對有序的數(shù)組進行去重期升。如果傳入無序數(shù)組則返回原數(shù)組。

   例:_sortedUniq([1,2,3,3]);//[1,2,3]
          _.sortedUniq([3,2,1,2,3,1]);//[3,2,1,2,3,1]

6 _.tail(array)

Gets all but the first element of array.

返回數(shù)組除了第一個元素之外的的所有元素互躬。

例:_.tail([1,2,3])//[2,3]

7 _.take(array,[n=1])

Creates a slice of array with n elements taken from the beginning.

創(chuàng)建一個數(shù)組播赁,從傳入元素的開始索引截取n個元素賦給新數(shù)組,返回新數(shù)組吼渡。

例:_.tail([1,2,3,4,5],2)//[1,2]
      _.tail([1,2,3,4,5],0)//[]

8 _takeRigth(array,[n=1])

Creates a slice of array with n elements taken from the end.

創(chuàng)建一個數(shù)組容为,從傳入元素的結束索引截取n個元素賦給新數(shù)組,返回新數(shù)組寺酪。

例:_.takeRigth([1,2,3,4,5]);[5]
       _.takeRight([1,2,3,4,5],2);[4,5]

9 _.union

Creates an array of unique values, in order, from all given arrays using [SameValueZero

]for equality comparisons.

將傳入數(shù)組進行合并坎背,并對該數(shù)組進行去重。

例:_.union([1,2,3],[1,2]);//[1,2,3]  
       _.union([1,2,3,4,5],[5,5,6]);//[1,2,3,4,5,6]

10 _.without(array ,[values])

  Creates an array excluding all given values using [SameValueZero]for equality comparisons.

  通過values對傳入數(shù)組進行過濾寄雀,過濾掉數(shù)組中的value值得滤,返回新數(shù)組。

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

11 _.xor([arrays])

  Creates an array of unique values that is the [symmetric difference]of the given arrays. The order of result values is determined by the order they occur in the arrays.

   對兩個數(shù)組合并去掉兩個數(shù)組共有的元素盒犹,返回新數(shù)組懂更。

   _.xor([1,2,3],[2,3,4]);//[1,2,3,4] 

12 _.zip _.unzip

Creates an array of grouped elements, the first of which contains the first elements of the given arrays, the second of which contains the second elements of the given arrays, and so on.

 _.zip:將傳入所有數(shù)組的第一個元素放到第一個數(shù)組,所有第二個元素放到第二個數(shù)組急膀,以此類推沮协。返回一個由這些數(shù)組作為子元素構成的新數(shù)組。_.unzip()與_.zip()功能相反卓嫂,

  _.zip([1,2],['a','b'],[true,false]);//[[1,'a',true],[2,'b',false]]
  _.unzip([[1,'a',true],[2,'b',false]]);//[[[1,'a',true],[2,'b',false]]]

13 _.zipObject([props=[]], [values=[]])

 This method is like [_.fromPairs] except that it accepts two arrays, one of property identifiers and one of corresponding values.

將兩個數(shù)組合并為一個對象慷暂,第一個數(shù)組的值為對象的鍵,第二個為對象的值命黔。

_.zipObject(['a','b'],[1,2]);//{a:1,b:2}

三篇博客把lodash的數(shù)組方法捋了一遍呜呐,接下來集合的方法就斤。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蘑辑,隨后出現(xiàn)的幾起案子洋机,更是在濱河造成了極大的恐慌,老刑警劉巖洋魂,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绷旗,死亡現(xiàn)場離奇詭異,居然都是意外死亡副砍,警方通過查閱死者的電腦和手機衔肢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豁翎,“玉大人角骤,你說我怎么就攤上這事⌒陌” “怎么了邦尊?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長优烧。 經(jīng)常有香客問我蝉揍,道長,這世上最難降的妖魔是什么畦娄? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任又沾,我火速辦了婚禮,結果婚禮上熙卡,老公的妹妹穿的比我還像新娘杖刷。我一直安慰自己,他們只是感情好再膳,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布挺勿。 她就那樣靜靜地躺著,像睡著了一般喂柒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上禾嫉,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天灾杰,我揣著相機與錄音,去河邊找鬼熙参。 笑死艳吠,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的孽椰。 我是一名探鬼主播昭娩,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼凛篙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了栏渺?” 一聲冷哼從身側響起呛梆,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎磕诊,沒想到半個月后填物,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡霎终,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年滞磺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莱褒。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡击困,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出广凸,到底是詐尸還是另有隱情阅茶,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布炮障,位于F島的核電站目派,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胁赢。R本人自食惡果不足惜企蹭,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望智末。 院中可真熱鬧谅摄,春花似錦、人聲如沸系馆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽由蘑。三九已至闽寡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間尼酿,已是汗流浹背爷狈。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留裳擎,地道東北人涎永。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親羡微。 傳聞我的和親對象是個殘疾皇子谷饿,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,724評論 0 33
  • FreeCodeCamp - Basic JavaScript 寫在前面: 我曾經(jīng)在進谷前刷過這一套題妈倔,不過當時只...
    付林恒閱讀 16,429評論 5 28
  • 01 自私博投、貪婪、欲望充滿著我們的世界启涯,善良仿佛是唯一的凈土贬堵,被古往今來的人們所向往和歌頌。殊不知善良恰恰是經(jīng)歷了...
    不再迷離閱讀 414評論 6 2
  • 0.前言 經(jīng)過近幾年的野蠻生長,國內(nèi)的直播市場的激烈廝殺仍在持續(xù)進行中松忍,這塊看起來很大的蛋糕蒸殿,真正能吃上的人卻不多...
    Starvicky閱讀 4,621評論 3 10
  • 《第一封情書》 下午一點七分 我決定給你寫情書,清早兩點的決定鸣峭, 現(xiàn)在開始到年底一百封應該差不多了宏所, 什么時候給你...
    萊耶爾羅耶爾閱讀 160評論 0 0