JavaScript实现数组全排列、去重及求最大值算法示例


Posted in Javascript onJuly 30, 2018

本文实例讲述了JavaScript实现数组全排列、去重及求最大值算法。分享给大家供大家参考,具体如下:

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]放入数组,保持原来的位置
      for (var j = 0; j < res.length; j++) {
        res[j].push(arr[i]);
        temp.push(res[j]);//将arr[j]组合起来
      }
    }
    return temp;
  }
}

2、数组去重

方法一:

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、求数组最大数

方法一:

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);
}
Javascript 相关文章推荐
jQuery UI Dialog 创建友好的弹出对话框实现代码
Apr 12 Javascript
js面向对象之静态方法和静态属性实例分析
Jan 10 Javascript
JavaScript中的fontsize()方法使用详解
Jun 08 Javascript
《JavaScript函数式编程》读后感
Aug 07 Javascript
jQuery实现产品对比功能附源码下载
Aug 09 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
使用jQuery实现简单的tab框实例
Aug 22 jQuery
npm的lock机制解析
Jun 20 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
Sep 16 Javascript
Vue中this.$nextTick的作用及用法
Feb 04 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
Apr 10 Javascript
在react项目中使用antd的form组件,动态设置input框的值
Oct 24 Javascript
在react中使用vuex的示例代码
Jul 30 #Javascript
使用JS判断移动端手机横竖屏状态
Jul 30 #Javascript
详解如何在微信小程序中愉快地使用sass
Jul 30 #Javascript
详解JSON Web Token 入门教程
Jul 30 #Javascript
JS中Promise函数then的奥秘探究
Jul 30 #Javascript
浅析java线程中断的办法
Jul 29 #Javascript
还不懂递归?读完这篇文章保证你会懂
Jul 29 #Javascript
You might like
AM/FM收音机的安装与调试
2021/03/02 无线电
PHP 编程的 5个良好习惯
2009/02/20 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
Python实现批量修改文件名实例
2015/07/08 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
使用python3实现操作串口详解
2019/01/01 Python
python实现整数的二进制循环移位
2019/03/08 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
思想汇报格式
2014/01/05 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
美食节策划方案
2014/05/26 职场文书
违反交通法规检讨书
2014/09/10 职场文书
作文批改评语
2014/12/25 职场文书
财政局长个人总结
2015/03/04 职场文书
用Python实现Newton插值法
2021/04/17 Python
图解上海144收音机
2021/04/22 无线电