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 寻址,闭包,对象模型和相关问题
Apr 27 Javascript
jQuery中获取Radio元素值的方法
Jul 02 Javascript
js使用html()或text()方法获取设置p标签的显示的值
Aug 01 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
Jan 02 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
Aug 21 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
Sep 26 Javascript
JavaScript基础知识之方法汇总结
Jan 24 Javascript
canvas实现刮刮卡效果
Mar 14 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
Apr 13 Javascript
antd组件Upload实现自己上传的实现示例
Dec 18 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
Jun 17 Javascript
vue 实现弹窗关闭后刷新效果
Apr 08 Vue.js
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
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
2013/12/04 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
python Django框架实现自定义表单提交
2016/03/25 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
pandas通过索引进行排序的示例
2018/11/16 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
PPP协议组成及简述协议协商的基本过程
2015/05/28 面试题
委托证明的格式
2014/01/10 职场文书
《山谷中的谜底》教学反思
2014/04/26 职场文书
设计大赛策划方案
2014/06/13 职场文书
公证处委托书
2015/01/28 职场文书
辞职信格式模板
2015/02/27 职场文书
2016年公司新年寄语
2015/08/17 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
PyMongo 查询数据的实现
2021/06/28 Python