loadsh之concat原始碼解析

2021-10-17 19:13:56 字數 1031 閱讀 4064

##作用:

清除陣列中的非真值

const arr = [1,2,3],brr = [4], crr = 5,err = [[6]];

const drr = _.concat(arr,brr,crr,err);

console.log(drr) // [1,2,3,4,5,[6]]

##原始碼:

function concat() 

//這裡把 arguments 分為了兩個值 第乙個值 array:any 和剩下的值組成的陣列

var args = array(length - 1),

array = arguments[0],

index = length;

//這裡是4

while (index--)

return arraypush(

//這裡判斷第乙個值是不是陣列物件,如果不是把他變為陣列的第乙個元素

isarray(array) ? copyarray(array) : [array],

//一級拉平的關鍵**.我在這裡面頁迷糊了

baseflatten(args, 1));

}

//這是乙個淺轉殖的陣列的**

function copyarray(source, array)

return array;

}

function baseflatten(array, depth, predicate, isstrict, result)  else 

} else if (!isstrict)

} return result;

}// 把 values的值新增在array陣列的後面,多次用到這個函式

function arraypush(array, values)

return array;

}

##總結:

主要看作者的程式設計思想和實現邏輯

AQS之countDownLatch原始碼解析

public class countdownlatch int getcount protected int tryacquireshared int acquires protected boolean tryreleaseshared int releases private final syn...

redux系列之react thunk原始碼解讀

不過,redux只是乙個和其他庫無關的狀態管理庫,為了能夠方便的在react中使用,我們必須結合react redux來使用。react redux通過provider使用給react專案的所有子元件注入store,通過connect給元件注入state和dispatch。但是,有了react re...

AbstractCollection原始碼分析

abstractcollection抽象類提供了collection的骨架實現,collection分析請看 這裡直接看它的 是如何實現的.public abstract iterator iterator 該方法沒有實現.public abstract int size 該方法沒有實現.publi...