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 学习之旅 (2)
Feb 05 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
Dec 04 Javascript
jQuery实现平滑滚动的标签分栏切换效果
Aug 28 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
Oct 15 Javascript
js生成随机数的方法实例
Oct 16 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
Feb 29 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
Aug 03 Javascript
纯JS实现简单的日历
Jun 26 Javascript
详解javascript对数组和json数组的操作
Apr 15 Javascript
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
JS Web Flex弹性盒子模型代码实例
Mar 10 Javascript
webpack介绍使用配置教程详解webpack介绍和使用
Jun 25 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
Cakephp 执行主要流程
2010/03/24 PHP
PHP垃圾回收机制简单说明
2010/07/22 PHP
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
PHP的password_hash()使用实例
2014/03/17 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
零基础php编程好学吗
2019/10/11 PHP
javascript 面向对象继承
2009/11/26 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
JS删除字符串中重复字符方法
2014/03/09 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
bootstrap table实例详解
2017/01/06 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
python根据出生年份简单计算生肖的方法
2015/03/27 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
python实发邮件实例详解
2019/11/11 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
C面试题
2015/10/08 面试题
婚礼主持词
2014/03/13 职场文书
2014春晚主持词
2014/03/25 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
博士给导师的自荐信
2015/03/06 职场文书
男人帮观后感
2015/06/18 职场文书
护士工作心得体会
2016/01/25 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫