today 2021.3.12將陣列(array)拆分成多個 size 長度的區塊,並將這些區塊組成乙個新陣列。 如果array 無法被分割成全部等長的區塊,那麼最後剩餘的元素將組成乙個區塊。lodash 原始碼
function
chunk
(array, size =1)
let index =
0let resindex =
0const result =
newarray
(math.
ceil
(length / size)
)//ceil函式返回大於或等於乙個給定數字的最小整數
while
(index < length)
return result
}
輸入輸出例子:
_.
chunk([
'a',
'b',
'c',
'd'],2
);// => [['a', 'b'], ['c', 'd']] _.
chunk([
'a',
'b',
'c',
'd'],3
);// => [['a', 'b', 'c'], ['d']]
以上雖然是
裁剪陣列array,從 start 位置開始到end結束,但不包括 end 本身的位置。
function
slice
(array, start, end
) start = start ==
null?0
: start
end = end ===
undefined
? length : end
//判斷start<0 假設為-4 傳入[1,2,3]
//4>length 則start 取0 假設傳入值為-3 則取3+(-3)=0 假設傳入值為-2 則取3+(-2)=1
if(start <0)
//結束標識大於length取length 小於length 取當前值
end = end > length ? length : end
if(end <0)
//0填充右位移操作 >>>
//01010>>>1 00101
length = start > end ?0:
((end - start)
>>>0)
start >>>=
0let index =-1
const result =
newarray
(length)
while
(++index < length)
return result
}
輸入輸出例子:
*
var array =[1
,2,3
,4]*
* _.
slice
(array,2)
*// => [3, 4]
lodash原始碼分析之Number
一 lodash版本 4.17.5 二 函式 1 clamp 1 定義 clamp number,lower upper 2 作用 返回加緊的數字。3 例子。const require lodash console.log clamp 10,1,20 輸出 10 console.log clamp ...
lodash原始碼分析之isArguments
有人命中註定要過平庸的生活,默默無聞,因為他們經歷了痛苦或不幸 有人卻故意這樣做,那是因為他們得到的幸福超過了他們的承受能力。卡爾維諾 煙雲 本文為讀 lodash 原始碼的第二十一篇,後續文章會更新到這個倉庫中,歡迎 star pocket lodash import gettag from in...
Lodash原始碼講解 slice函式
我們首先來看一下這個函式的原始碼,原始碼如下所示 creates a slice of array from start up to,but not including,end note this method is used instead of array slice to ensure den...