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 相关文章推荐
jQuery生成asp.net服务器控件的代码
Feb 04 Javascript
用js解决数字不能换行问题
Aug 10 Javascript
基于jQuery的动态表格插件
Mar 28 Javascript
javascript函数作用域学习示例(js作用域)
Jan 13 Javascript
最丑的时钟效果!js canvas时钟制作方法
Aug 15 Javascript
Javascript数组循环遍历之forEach详解
Nov 07 Javascript
浅谈Node.js:理解stream
Dec 08 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
Aug 18 Javascript
详解cordova打包成webapp的方法
Oct 18 Javascript
vuex(vue状态管理)的特殊应用案例分享
Mar 03 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
May 13 Javascript
解决vue-router 嵌套路由没反应的问题
Sep 22 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
PHP 截取字符串专题集合
2010/08/19 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
GreyBox技术总结(转)
2010/11/23 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
node微信开发之获取access_token+自定义菜单
2019/03/17 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
python实现进程间通信简单实例
2014/07/23 Python
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
Python验证码截取识别代码实例
2020/05/16 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
德国苹果商店:MacTrade
2020/05/18 全球购物
2014年关于两会精神的心得体会
2014/03/17 职场文书
员工聘用合同范本
2015/09/21 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
python函数的两种嵌套方法使用
2022/04/02 Python