##作用:
清除陣列中的非真值
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...