算法

  • 任意長度數(shù)組的最小/大數(shù)

    es6 寫法
    // 最小值
    Math.min(...arr)
    // 最大值
    Math.max(...arr)
    
  • 數(shù)組升序/降序

    var points = [40, 100, 1, 5, 25, 10];
    points.sort((a, b)=>{return a - b});//升序
    points.sort((a, b)=>{return b - a});//降序
    
  • 排序?qū)ο髷?shù)組

    var cars = [
    {type:"Volvo", year:2016},
    {type:"Saab", year:2001},
    {type:"BMW", year:2010}];
    
    cars.sort((a, b)=>{return a.year - b.year});
    
  • 顛倒數(shù)組中元素的順序(不排序僅顛倒)

    arr.reverse()
    
  • 數(shù)組去重

    一、 set與解構(gòu)賦值去重(ES6中新增了數(shù)據(jù)類型set褐耳,set的一個最大的特點就是數(shù)據(jù)不重復(fù))
    
    function unique(arr) {
      if (!Array.isArray(arr)) {
        console.log('type error!')
        return
      }
      return [...new Set(arr)]
    }
    
    
    二诈闺、Array.from與set去重
    
    
    function unique(arr) {
      if (!Array.isArray(arr)) {
        console.log('type error!')
        return
      }
      return Array.from(new Set(arr))
    }
    
  • 冒泡排序

    示例圖

 function bubbleSort(arr) {
    let temp = null, flag = 1
    const len = arr.length
    for (let i = 0; i <= len - 1 && flag === 1; i++) {
      flag = 0
      for (let j = 0; j < len - i; j++) {
        if (arr[j] > arr[j + 1]) {
          temp = arr[j + 1]
          arr[j + 1] = arr[j]
          arr[j] = temp
          flag = 1// 發(fā)生數(shù)據(jù)交換flag置為1
        }
      }
    }
    return arr
  }
  • 選擇排序

    示例圖
數(shù)據(jù)規(guī)模越小越好

function selectionSort(arr) {
  var len = arr.length;
  var minIndex, temp;
  for (var i = 0; i < len - 1; i++) {
    minIndex = i;
    for (var j = i + 1; j < len; j++) {
        if (arr[j] < arr[minIndex]) {     // 尋找最小的數(shù)
            minIndex = j;                 // 將最小數(shù)的索引保存
        }
    }
    temp = arr[i];
    arr[i] = arr[minIndex];
    arr[minIndex] = temp;
 }
  return arr;
  }
  • 插入排序

    示例圖
    function insertSort(arr) {
      for (let i = 1; i < arr.length; i++) {
      //將arr[i]插入到arr[i-1],arr[i-2]铃芦,arr[i-3]……之中
      for (let j = i; j > 0; j--) {
        if (arr[j] < arr[j - 1]) {
            [arr[j - 1], arr[j]] = [arr[j], arr[j - 1]]
          }
        }
      }
        return arr
      }
    
  • 快速排序

    示例圖
    const arr = [5, 2, 7, 8, 34, 7, 39, 12, 56, 9, 1]
    
    function quickSort(arr) {
      // 4.結(jié)束遞歸(當(dāng)ary小于等于一項买雾,則不用處理)
      if (arr.length <= 1) {
          return arr
      }
      // 1. 找到數(shù)組的中間項,在原有的數(shù)組中把它移除
      const middleIndex = Math.floor(arr.length / 2)
      const middle = arr.splice(middleIndex, 1)[0]
      // 2. 準備左右兩個數(shù)組杨帽,循環(huán)剩下數(shù)組中的每一項漓穿,比當(dāng)前項小的放到左邊數(shù)組中,反之放到右邊數(shù)組中
      const leftArr = [], rightArr = []
      for (let i = 0; i < arr.length; i++) {
        const current = arr[i]
        current < middle ? leftArr.push(current) : rightArr.push(current)
    
      }
      // 3. 遞歸方式讓左右兩邊的數(shù)組持續(xù)這樣處理注盈,一直到左右兩邊都排好序為止晃危。
      //(最后讓左邊+中間+右邊拼接成最后的結(jié)果)
      return quickSort(leftArr).concat(middle, quickSort(rightArr))
    }
    
    console.log(bubbleSort(arr))  // [1, 2,  5,  7,  7, 8, 9, 12, 34, 39, 56]
    
  • 判斷是否包含查詢的字符串

    var s = 'Hello world!';
    s.includes('o') // true
    
  • 判斷查詢字符串是否在頭部/尾部

    s.startsWith('Hello') // true
    s.endsWith('!') // true
    
  • 字符串重復(fù)指定次數(shù)返回

    "Hello,".repeat(2)
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子僚饭,更是在濱河造成了極大的恐慌震叮,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鳍鸵,死亡現(xiàn)場離奇詭異苇瓣,居然都是意外死亡,警方通過查閱死者的電腦和手機偿乖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門击罪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贪薪,你說我怎么就攤上這事媳禁。” “怎么了画切?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵竣稽,是天一觀的道長。 經(jīng)常有香客問我霍弹,道長毫别,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任典格,我火速辦了婚禮岛宦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钝计。我一直安慰自己,他們只是感情好齐佳,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布私恬。 她就那樣靜靜地躺著,像睡著了一般炼吴。 火紅的嫁衣襯著肌膚如雪本鸣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天硅蹦,我揣著相機與錄音荣德,去河邊找鬼。 笑死童芹,一個胖子當(dāng)著我的面吹牛涮瞻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播假褪,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼署咽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宁否,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤窒升,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后慕匠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饱须,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年台谊,在試婚紗的時候發(fā)現(xiàn)自己被綠了蓉媳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡青伤,死狀恐怖督怜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情狠角,我是刑警寧澤号杠,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站丰歌,受9級特大地震影響姨蟋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜立帖,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一眼溶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晓勇,春花似錦堂飞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至描融,卻和暖如春铝噩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背窿克。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工骏庸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人年叮。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓具被,卻偏偏與公主長得像,于是被迫代替她去往敵國和親只损。 傳聞我的和親對象是個殘疾皇子硬猫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

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