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 slibings选取同级其他元素的实现代码
Nov 15 Javascript
JS获取select-option-text_value的方法
Dec 26 Javascript
基于javascript实现句子翻牌网页版小游戏
Mar 23 Javascript
微信小程序 图片绝对定位(背景图片)
Apr 05 Javascript
Angularjs 与 bower安装和使用详解
May 11 Javascript
JS设置随机出现2个数字的实例代码
Jul 19 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
Jan 18 Javascript
用Vue写一个分页器的示例代码
Apr 22 Javascript
vue基础之模板和过滤器用法实例分析
Mar 12 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
Jun 04 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
Nov 19 Javascript
vue实现省市区联动 element-china-area-data插件
Apr 22 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
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
smarty实现多级分类的方法
2014/12/05 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
python中的字典使用分享
2016/07/31 Python
python绘制直线的方法
2018/06/30 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
Python3常用内置方法代码实例
2019/11/18 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
通信生自我鉴定
2014/01/18 职场文书
会计系毕业求职信
2014/08/07 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书