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 相关文章推荐
formValidator3.3的ajaxValidator一些异常分析
Jul 12 Javascript
javascript禁用键盘功能键让右击及其他键无效
Oct 09 Javascript
js+CSS实现弹出居中背景半透明div层的方法
Feb 26 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
Dec 26 Javascript
详解javascript事件冒泡
Jan 09 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
Sep 15 Javascript
浅谈jquery上下滑动的注意事项
Oct 13 Javascript
SpringMVC+bootstrap table实例详解
Jun 02 Javascript
js实现从左向右滑动式轮播图效果
Jul 07 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
详解小程序不同页面之间通讯的解决方案
Nov 23 Javascript
微信小程序自定义底部弹出框功能
Nov 18 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
浅析get与post的一些特殊情况
2014/07/28 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
javascript定义函数的方法
2010/12/06 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python中from module import * 的一个坑
2014/07/20 Python
python的mysqldb安装步骤详解
2017/08/14 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
个人委托书格式
2014/04/04 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
中学生运动会口号
2014/06/07 职场文书
爱护花草树木的标语
2014/06/11 职场文书
工程服务质量承诺书
2015/04/29 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
用Python实现Newton插值法
2021/04/17 Python
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL