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 相关文章推荐
(jQuery,mootools,dojo)使用适合自己的编程别名命名
Sep 14 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 Javascript
js取消单选按钮选中示例代码
Nov 14 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
Dec 04 Javascript
JavaScript的RequireJS库入门指南
Jul 01 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
Oct 23 Javascript
js实现交通灯效果
Jan 13 Javascript
浅谈键盘上回车按钮的js触发事件
Feb 13 Javascript
详解webpack + react + react-router 如何实现懒加载
Nov 20 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
Dec 16 Javascript
angula中使用iframe点击后不执行变更检测的问题
May 10 Javascript
vue接通后端api以及部署到服务器操作
Aug 13 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传输数据的代码
2007/11/13 PHP
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
php操作MongoDB类实例
2015/06/17 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
PHP目录操作实例总结
2016/09/27 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
Python加载带有注释的Json文件实例
2018/05/23 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
超级搞笑检讨书
2014/01/15 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
护士节策划方案
2014/05/19 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书