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_01_isPlainObject分析与重构
Oct 20 Javascript
window.dialogArguments 使用说明
Apr 11 Javascript
js实现格式化金额,字符,时间的方法
Feb 26 Javascript
js实现非常简单的焦点图切换特效实例
May 07 Javascript
由浅入深讲解Javascript继承机制与simple-inheritance源码分析
Dec 13 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
Mar 25 Javascript
jQuery实现验证码功能
Mar 17 Javascript
bootstrap table表格客户端分页实例
Aug 07 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
Aug 27 Javascript
vue-cli项目无法用本机IP访问的解决方法
Sep 20 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
May 26 Javascript
vue+element模态框中新增模态框和删除功能
Jun 11 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安装攻略:常见问题解答(二)
2006/10/09 PHP
php 变量定义方法
2009/06/14 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
2011/07/28 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
PHP常用正则表达式集锦
2014/08/17 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
Python3中的json模块使用详解
2018/05/05 Python
python 格式化输出百分号的方法
2019/01/20 Python
python下PyGame的下载与安装过程及遇到问题
2019/08/04 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
初中班主任评语大全
2014/04/24 职场文书
电子商务求职信
2014/06/15 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
Java基础——Map集合
2022/04/01 Java/Android
Redis批量生成数据的实现
2022/06/05 Redis