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 json2 使用方法
Mar 16 Javascript
jquery autocomplete自动完成插件的的使用方法
Aug 07 Javascript
Jquery动态改变图片IMG的src地址示例
Jun 25 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
Nov 12 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
Oct 23 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
Sep 05 Javascript
js内置对象处理_打印学生成绩单的简单实现
Sep 24 Javascript
jQuery实现html双向绑定功能示例
Oct 09 jQuery
微信小程序实现多宫格抽奖活动
Apr 15 Javascript
JavaScript实现省份城市的三级联动
Feb 11 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
Apr 13 Javascript
浅谈TypeScript 索引签名的理解
Oct 16 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
PHP中函数内引用全局变量的方法
2008/10/20 PHP
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
jquery 笔记 事件
2011/11/02 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
python enumerate函数的使用方法总结
2017/11/15 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
详解python中init方法和随机数方法
2019/03/13 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
慈善晚会策划方案
2014/05/14 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS
实现一个简单得数据响应系统
2021/11/11 Javascript