實現乙個可控深度的展平陣列函式(阿里筆試)

2021-09-26 15:52:43 字數 538 閱讀 8423

陣列是可多層巢狀,給定乙個陣列預設展開層數為1 ,陣列按照輸入層數展開,需要將改方法變為陣列的原型方法,實現的demo如下

var arr1 = [1,[2,3]];

console.log(arr1.flatarr())//[1,2,3]

var arr2 = [1,[2,3,[4]]];

console.log(arr2.flatarr())//[1,2,3,[4]]

var arr3 = [1,[2,3,[4]]];

console.log(arr3.flatarr(2))//[1,2,3,4]

var arr4 = [1, ,[3,4]];

console.log(arr4.flatarr())//[1,3,4]

在網上看到了很多的展平為一維的方法,但是阿里的這個確實是第一次遇到,所以我修改了其中的乙個用遞迴的方式去解決了改問題,**如下:

array.prototype.flatarr=function (depth)

for(let i=0;i參考:

JS實現乙個可控制的進度條

寫在前面 原始碼已經放到github上 進度條原始碼 一如既往的看效果 好吧,效果還是一如既往的醜,簡單的說一下怎麼實現這樣的效果,還是和之前一樣我們分析一下難點在哪?第一 進度條是生成的,那麼就意味著div的寬度是不定的。第二 百分比是動態的,就意味著是計算出來的。第三 每次的改變,百分比都要自己...

乙個ntohs函式的實現

眾所周知ntohs用來將本機位元組序列轉換為網路位元組序列,如何寫乙個高效能的實現呢?先寫乙個能正常工作的 如下 執行後與系統自帶的對比效能,執行時間輸出如下 效能相差很多呀,看來得用彙編寫個改進版本 執行結果如下 效能有所改進,但與系統實現比較依然很慢,並沒有顯著改進效能,看來還得改進,應該是pr...

實現乙個Memcpy函式

需要考慮記憶體重疊的情況 includeusing namespace std void memcpy void dst,const void src,size t len void ret dst if dst src else return ret int main 那麼為什麼還要考慮重寫mem...