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 相关文章推荐
如何在标题栏显示框架内页面的标题
Feb 03 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
May 02 Javascript
JavaScript的==运算详解
Jul 20 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
Sep 14 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
Nov 23 Javascript
jQuery实现弹出窗口弹出div层的实例代码
Jan 09 Javascript
详解angularJs中关于ng-class的三种使用方式说明
Jun 02 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
vue+element-ui+ajax实现一个表格的实例
Mar 09 Javascript
karma+webpack搭建vue单元测试环境的方法示例
May 24 Javascript
ES6 新增的创建数组的方法(小结)
Aug 01 Javascript
javascript实现简单页面倒计时
Mar 02 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+APACHE实现用户论证的方法
2006/10/09 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
学习ExtJS Column布局
2009/10/08 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
2015/08/10 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
python正则表达式中的括号匹配问题
2014/12/14 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
深入Python解释器理解Python中的字节码
2015/04/01 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
学生手册家长评语
2014/02/10 职场文书
趣味运动会活动方案
2014/02/12 职场文书
目标管理责任书
2014/04/15 职场文书
2014企业年终工作总结
2014/12/23 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
建国大业观后感800字
2015/06/01 职场文书
公司行政管理制度范本
2015/08/05 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android
Win11快速关闭所有广告推荐
2022/04/19 数码科技