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 代码压缩工具小结
Feb 27 Javascript
将中国标准时间转换成标准格式的代码
Mar 20 Javascript
Javascript 构造函数详解
Oct 22 Javascript
JavaScript通过字典进行字符串翻译转换的方法
Mar 19 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 Javascript
Jquery EasyUI $.Parser
Jun 02 jQuery
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
Mar 12 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
Aug 08 jQuery
对Vue table 动态表格td可编辑的方法详解
Aug 28 Javascript
解决vue移动端适配问题
Dec 12 Javascript
读懂CommonJS的模块加载
Apr 19 Javascript
JavaScript判断对象和数组的两种方法
May 31 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
ftp类(myftp.php)
2006/10/09 PHP
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
PyQt5实现拖放功能
2018/04/25 Python
Python os.access()用法实例
2019/02/18 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
Notino法国:购买香水和化妆品
2019/04/15 全球购物
TheFork葡萄牙:欧洲领先的在线餐厅预订平台
2019/05/27 全球购物
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
党员2014两会学习心得体会
2014/03/17 职场文书
经典促销广告词大全
2014/03/19 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
中学生运动会口号
2014/06/07 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
2015年维修工作总结
2015/04/25 职场文书
项目合作意向书
2015/05/08 职场文书
中秋节晚会开场白
2015/05/29 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
golang中的空接口使用详解
2021/03/30 Python