從 前端算法 到 js深度學習

分享一些常用的數(shù)組方法:

壓平數(shù)組(Array.prototype.contact的妙用)

  [].concat.apply([],[[1,2],3,[4,5,6]])
  打印: [1, 2, 3, 4, 5, 6]

數(shù)組拍平與迭代器的運用

問題描述:編寫一個 JavaScript generator 函數(shù)馋缅,接受一個僅包含數(shù)字的 多維數(shù)組 帖池,返回一個迭代器,可以遍歷得到它拍平以后的結(jié)果蚁廓。例如:

const numbers = flatten2([1, [[2], 3, 4], 5])
numbers.next().value // => 1
numbers.next().value // => 2
numbers.next().value // => 3
numbers.next().value // => 4
numbers.next().value // => 5

答案:

function *flatten2 (arr) {
  for(let a of arr) {
    Array.isArray(a) ? yield* flatten2(a) : yield a
  }
}

數(shù)組去重 (es6 set 用法)

[ ...new Set([1, 2, 3, 1, 5]) ]
或者
Array.from(new set([1, 2, 3, 1, 5]))

爬樓梯(斐波那契數(shù)列——解構與循環(huán)優(yōu)化遞歸算法)

問題描述: 有若干階樓梯,每一次爬一節(jié)或者兩節(jié)厨幻,問有多少種方法相嵌?

//采用動態(tài)規(guī)劃方案 
function climb(n){
             if (n == 1)  return 1
             if (n == 2)  return 2
             let n1 = 1
             let n2 = 2
             for(var i = 3; i < n; i++){
                [n1, n2] = [n2, n1 + n2] 
             } 
             return n1 + n2
     }

//傳統(tǒng)遞歸
function fb(n){
            if(n == 1 || n == 2){ return n} 
            return fb(n-1) + fb(n - 2)
   }

數(shù)組空位填充(數(shù)組下標的應用與理解)

問題:JavaScript 數(shù)組有空位的概念,也就數(shù)組的一個位置上沒有任何的值况脆。例如:

[ , , 'Hello'] // => 0, 1 都是空位, 3 不是空位

要求: 把空位都填充為 'Hello’

let arr = [ , undefined, null , 'Hello']
  for(var i = 0; i < arr.length; i++){
      if(!(i in arr)){
          arr[i] = 'Hello'
        }
   }
 console.log(arr)

數(shù)組中的數(shù)據(jù)劃分(解構與while)

問題描述:
完成一個函數(shù) partition饭宾,它接受一個數(shù)組作為參數(shù)。它會搬動數(shù)組中的元素格了,使得所有小于第一個項的元素都搬動到它的左邊看铆,所有大于第一個項的元素都搬動到右邊。例如:

const arr = [3, 1, 6, 2, 4, 5]
partition(arr)
console.log(arr) // => [2, 1, 3, 6, 4, 5]

解析

const partition = (arr) => {
  const swap = (a, i, j) => [a[i], a[j]] = [a[j], a[i]]  //解構賦值盛末,很常用
  
  const v = arr[0]
  let i = 0
  let k = 1
  let j = arr.length - 1
  
  while(k <= j) {
    if(arr[k] < v) swap(arr, i++, k++)  
    else if(arr[k] > v) swap(arr, j--, k) 
    else k++
  }
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弹惦,一起剝皮案震驚了整個濱河市否淤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌棠隐,老刑警劉巖石抡,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宵荒,居然都是意外死亡汁雷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門报咳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侠讯,“玉大人,你說我怎么就攤上這事暑刃∠徜觯” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵岩臣,是天一觀的道長溜嗜。 經(jīng)常有香客問我,道長架谎,這世上最難降的妖魔是什么炸宵? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮谷扣,結(jié)果婚禮上土全,老公的妹妹穿的比我還像新娘。我一直安慰自己会涎,他們只是感情好裹匙,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著末秃,像睡著了一般概页。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上练慕,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天惰匙,我揣著相機與錄音,去河邊找鬼贺待。 笑死徽曲,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的麸塞。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼涧衙,長吁一口氣:“原來是場噩夢啊……” “哼哪工!你這毒婦竟也來了奥此?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤雁比,失蹤者是張志新(化名)和其女友劉穎稚虎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偎捎,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蠢终,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了茴她。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寻拂。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丈牢,靈堂內(nèi)的尸體忽然破棺而出祭钉,到底是詐尸還是另有隱情,我是刑警寧澤己沛,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布慌核,位于F島的核電站,受9級特大地震影響申尼,放射性物質(zhì)發(fā)生泄漏垮卓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一师幕、第九天 我趴在偏房一處隱蔽的房頂上張望粟按。 院中可真熱鬧,春花似錦们衙、人聲如沸钾怔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宗侦。三九已至,卻和暖如春忆蚀,著一層夾襖步出監(jiān)牢的瞬間矾利,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工馋袜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留男旗,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓欣鳖,卻偏偏與公主長得像察皇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 官方中文版原文鏈接 感謝社區(qū)中各位的大力支持什荣,譯者再次奉上一點點福利:阿里云產(chǎn)品券矾缓,享受所有官網(wǎng)優(yōu)惠,并抽取幸運大...
    HetfieldJoe閱讀 3,025評論 3 37
  • 第三章 類型稻爬、值和變量 1嗜闻、存取字符串、數(shù)字或布爾值的屬性時創(chuàng)建的臨時對象稱做包裝對象桅锄,它只是偶爾用來區(qū)分字符串值...
    坤少卡卡閱讀 626評論 0 1
  • 數(shù)組是值的有序集合琉雳。每個值叫做一個元素,而每個元素在數(shù)組中有一個位置友瘤,以數(shù)字表示翠肘,稱為索引。 JavaScript...
    劼哥stone閱讀 1,128評論 6 20
  • 一商佑、ES6簡介 ? 歷時將近6年的時間來制定的新 ECMAScript 標準 ECMAScript 6(亦稱 ...
    一歲一枯榮_閱讀 6,055評論 8 25
  • 特別說明锯茄,為便于查閱,文章轉(zhuǎn)自https://github.com/getify/You-Dont-Know-JS...
    殺破狼real閱讀 562評論 0 0