面試 手寫乙個函式實現求多個一維陣列的交集

2021-08-21 03:11:11 字數 608 閱讀 3667

題目:手寫乙個函式實現求多個一維陣列的交集

//求兩個陣列的交集

function intersect(arr0,arr1))

}function intersectall())

}var result = intersectall([2,3,4,6,78,9],[4,5,89,0,6,3],[5,3,6],[4,5,3,55,6]);

console.log(result); //[3,6]

測試如下:

這個題中主要考察的是對js中陣列操作的熟練度,陣列操作是很重要的乙個模組,後面會專門寫一篇js中陣列操作的文章。

在上面的實現中,先實現兩個陣列求交集,使用了filter的方法,這種實現方式比傳統兩層for迴圈的時間複雜度要低很多,而且**也很簡潔。

在多個陣列的交集實現中,利用了js函式的arguments屬性,這裡注意這個arguments只是個類陣列,但不是陣列,所以需要將arguments先轉為陣列才能使用歸併函式reduce。

手寫乙個bind函式(大概)

昨天搜了下bind怎麼實現,大家都在說bind的特徵啊啥的,沒搜到,今天有人問起來,我反問他要咋搜,他和我說柯里化。柯里化!它的最常用的表現形式不就是傳說中的閉包的其中一種嘛!i think i can do it 我覺得我可以嘗試著實現一下。首先我們來回想this指向的幾種可能性 當函式作為乙個物...

js面試技巧之手寫乙個深拷貝

手寫乙個深拷貝,雖然這個題並不難,但是我們也要明白它所要考察的知識點 1 淺拷貝和深拷貝的區別 2 數值型別和引用型別在記憶體中的儲存方式 3 typeof能對哪些資料型別進行判斷 4 instanceof 的用法 5 hasownproperty的用法 6 遞迴函式的用法 如下 給copysouc...

乙個介面多個實現,指定實現類

目的 乙個介面多個實現時,根據不同的條件呼叫不用的實現 1 有如下介面 public inte ce pay2 有如下兩個實現 實現一 service weixinpay public class weixinpay implements pay 實現二 service alipay public ...