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 相关文章推荐
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
Dec 27 Javascript
javascript简易缓动插件(源码打包)
Feb 16 Javascript
在页面加载完成后通过jquery给多个span赋值
May 21 Javascript
javascript抽象工厂模式详细说明
Dec 16 Javascript
基于JavaScript实现弹出框效果
Feb 19 Javascript
BootStrap实用代码片段之一
Mar 22 Javascript
AngularJS入门教程之Select(选择框)详解
Jul 27 Javascript
Vue.js中数据绑定的语法教程
Jun 02 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
微信小程序简单实现form表单获取输入数据功能示例
Nov 30 Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 22 Javascript
es5 类与es6中class的区别小结
Nov 09 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中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
基于php实现的验证码小程序
2016/12/13 PHP
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
Python生成随机验证码的两种方法
2015/12/22 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
python调用百度REST API实现语音识别
2018/08/30 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
html5+css3之制作header实例与更新
2020/12/21 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
初三物理教学反思
2014/01/21 职场文书
校园学雷锋活动月总结
2014/03/09 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
婚宴致辞
2015/07/28 职场文书
小学大队委竞选口号
2015/12/25 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python