欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實現(xiàn)數(shù)組全排列、去重及求最大值算法示例

 更新時間:2018年07月30日 10:15:03   作者:筱葭  
這篇文章主要介紹了JavaScript實現(xiàn)數(shù)組全排列、去重及求最大值算法,結(jié)合實例形式分析了JavaScript針對數(shù)組的遞歸、遍歷、排序等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了JavaScript實現(xiàn)數(shù)組全排列、去重及求最大值算法。分享給大家供大家參考,具體如下:

1、全排列(遞歸)

function permutation(arr){
  if (arr.length == 1)
    return arr;
  else if (arr.length == 2)
    return [[arr[0],arr[1]],[arr[1],arr[0]]];
  else {
    var temp = [];
    for (var i = 0; i < arr.length; i++) {
      var save = arr[i];
      arr.splice(i, 1);//取出arr[i]
      var res = permutation(arr);//遞歸排列arr[0],arr[1],...,arr[i-1],arr[i+1],...,arr[n]
      arr.splice(i, 0, save);//將arr[j]放入數(shù)組,保持原來的位置
      for (var j = 0; j < res.length; j++) {
        res[j].push(arr[i]);
        temp.push(res[j]);//將arr[j]組合起來
      }
    }
    return temp;
  }
}

2、數(shù)組去重

方法一:

function norepeat(contents) {
  var norepeatContents = [];
  for (var i = 0; i < contents.length; i++) {
    if(norepeatContents.indexOf(contents[i]) == -1)
      norepeatContents.push(contents[i]);
  }
  return norepeatContents;
}

方法二:

function norepeat(contents) {
  var norepeatContents = [], hash = {};
  for (var i = 0; i < contents.length; i++) {
    if(!hash[contents[i]]) {
      norepeatContents.push(contents[i]);
      hash[contents[i]] = true;
    }
  }
  return norepeatContents;
}

3、求數(shù)組最大數(shù)

方法一:

function findMax(arr) {
  var max = arr[0];
  for (var i = 1; i < arr.length; i++) {
    if (arr[i] > max)
      max = arr[i];
  }
  return max;
}

方法二:

function findMax(arr) {
  return Math.max.apply(Math, arr);
}

PS:這里再為大家提供幾款相關(guān)工具供大家參考使用:

在線去除重復(fù)項工具:
http://tools.jb51.net/code/quchong

在線文本去重復(fù)工具:
http://tools.jb51.net/aideddesign/txt_quchong

在線動畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript字符與字符串操作技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • 基于JavaScript的簡易計算器功能

    基于JavaScript的簡易計算器功能

    這篇文章主要為大家詳細介紹了基于JavaScript的簡易計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • js 蒙版進度條(結(jié)合圖片)

    js 蒙版進度條(結(jié)合圖片)

    js 結(jié)合圖片實現(xiàn)的蒙版進度條效果。
    2010-03-03
  • javascript 跨瀏覽器開發(fā)經(jīng)驗總結(jié)(五) js 事件

    javascript 跨瀏覽器開發(fā)經(jīng)驗總結(jié)(五) js 事件

    javascript 跨瀏覽器開發(fā)之js 事件的兼容性問題,需要的朋友可以參考下。
    2010-05-05
  • JS檢測數(shù)組類型的方法小結(jié)

    JS檢測數(shù)組類型的方法小結(jié)

    這篇文章主要介紹了js檢測數(shù)組類型的方法小結(jié),有instanceof方法Array.isArray() 方法和Object.prototype.toString.call()方法,都是比較常用的,需要的朋友可以參考下
    2017-03-03
  • 小程序?qū)崿F(xiàn)人臉識別功能(百度ai)

    小程序?qū)崿F(xiàn)人臉識別功能(百度ai)

    這篇文章主要介紹了小程序?qū)崿F(xiàn)人臉識別功能(百度ai),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 利用ThreeJS實現(xiàn)孔明燈效果

    利用ThreeJS實現(xiàn)孔明燈效果

    這篇文章主要為大家詳細介紹了如何利用Three.js實現(xiàn)3D圣誕節(jié)孔明燈效果,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下
    2022-12-12
  • 細品javascript 尋址,閉包,對象模型和相關(guān)問題

    細品javascript 尋址,閉包,對象模型和相關(guān)問題

    似乎某些程序員的集合是不相交的,就好像JS程序員和玩編譯原理和CPU指令的匯編程序員就幾乎沒有交叉。前些日子討論的火熱的“作用域鏈”問題,說白了就是尋址問題,不過,這個在C中十分簡單的問題卻被JS這個動態(tài)語言弄得很復(fù)雜。
    2009-04-04
  • js實現(xiàn)hashtable的賦值、取值、遍歷操作實例詳解

    js實現(xiàn)hashtable的賦值、取值、遍歷操作實例詳解

    這篇文章主要介紹了js實現(xiàn)hashtable的賦值、取值、遍歷操作,結(jié)合實例形式分析了哈希表的原理、哈希鍵值對操作相關(guān)技巧,需要的朋友可以參考下
    2016-12-12
  • 使用Dropzone.js上傳的示例代碼

    使用Dropzone.js上傳的示例代碼

    本篇文章主要介紹了使用Dropzone.js上傳的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 解決LayUI表單獲取不到data的問題

    解決LayUI表單獲取不到data的問題

    今天小編就為大家分享一篇解決LayUI表單獲取不到data的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08

最新評論