js求数组中全部数字可拼接出的最大整数示例代码


Posted in Javascript onAugust 25, 2017

前言

最近在工作碰到一个问题,就是用javascript求数组中所有数字能拼接出的最大整数,数组的每一项为单独的拼接项,不能再拆开,例如[2,34]中2和34分别为要被拼接的数字,而不是说34还能继续拆分为3和4。

具体需求为,将[7,321,35,4]拼接为7435321。下面话不多说了,来一起看看详细的实现方法吧。

我设计的算法如下:

function insertSort(arr) {
 let res = [arr[0]];
 for (let i = 1, len = arr.length; i < len; i++) {
  let temp = arr[i];
  for (let j = i - 1; j >= 0; j--) {
   if (!compareNum(res[j],temp)) {
    res[j + 1] = res[j];
    res[j] = temp;
   } else {
    res[j + 1] = temp;
    break;
   }
  }
 }
 return res;
}
function compareNum(a,b) {
 a =""+a;
 b = ""+b;
 let aLen=a.length;
 let bLen=b.length;
 let aIndex=0;
 let bIndex=0;

 while (aIndex<aLen && bIndex<bLen){
  let flag=false;
  if (a[aIndex]==b[bIndex]){
   aIndex+1<aLen && (aIndex++,flag=true);
   bIndex+1<bLen && (bIndex++,flag=true);
  }else{
   break;
  }
  if (!flag){
   break;
  }
 }
 if (a[aIndex]>b[bIndex]){
  return true;
 }else{
  return false;
 }
}
let arr=[5,2,1,38];
// let arr=[5,2,1,38,52,4,5,593,8,55,555,492,493,7,9,61,66,6];
// let arr=[5,2,1,38,52,4,5,593,61,6];

function toInt(arr) {
 let newArr=insertSort(arr);
 document.write(newArr);
 return newArr.join("");
}

let intNum=toInt(arr);
console.log(intNum);

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript 事件系统
Jul 22 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
Dec 13 Javascript
Select标签下拉列表二级联动级联实例代码
Feb 07 Javascript
微信小程序url与token设置详解
Sep 26 Javascript
p5.js入门教程之小球动画示例代码
Mar 15 Javascript
vue计算属性及使用详解
Apr 02 Javascript
npm 更改默认全局路径以及国内镜像的方法
May 16 Javascript
深入浅析Vue全局组件与局部组件的区别
Jun 15 Javascript
浅谈React碰到v-if
Nov 04 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
Apr 26 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
Jul 31 Javascript
JS实现网页端猜数字小游戏
Mar 06 Javascript
Vue.js进行查询操作的实例详解
Aug 25 #Javascript
Vue实例中生命周期created和mounted的区别详解
Aug 25 #Javascript
Vue.js框架路由使用方法实例详解
Aug 25 #Javascript
关于Vue.nextTick()的正确使用方法浅析
Aug 25 #Javascript
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 #jQuery
JS中利用swiper实现3d翻转幻灯片实例代码
Aug 25 #Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
Aug 25 #Javascript
You might like
php 三维饼图的实现代码
2008/09/28 PHP
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
Look And Say 序列php实现代码
2011/05/22 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
JavaScript实现点击切换功能
2021/01/27 Javascript
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
详解Python字符串切片
2019/05/20 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
python list的index()和find()的实现
2020/11/16 Python
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
企业门卫岗位职责
2013/12/12 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
python基于tkinter实现gif录屏功能
2021/05/19 Python
JavaScript实现登录窗体
2021/06/22 Javascript
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL
html5调用摄像头截图功能
2022/01/18 Javascript