js排序与重组的实例讲解


Posted in Javascript onAugust 28, 2017

前几天同学发给我一个问题,思路想整理一下,也供大家参考。实际上这道题本质就是考察的是去重与排序的问题。好了闲话少说,上题。

js排序与重组的实例讲解

function input(req){
if(req<=100){
var arr=[],arr1=[];
for(var i=0;i<req;i++){
var num=parseInt(Math.random()*(1000-1)+1);
arr.push(num);
if(arr1.indexOf(arr[i])==-1)
arr1.push(arr[i]);

}
for(var n=0;n<arr1.length-1;n++){
for(var m=n+1;m<arr1.length;m++){
if(arr1[n]>arr1[m]){
var temp=arr1[n];
arr1[n]=arr1[m];
arr1[m]=temp;
}
}
}

console.log(arr.length);
console.log(arr.join(' ')); 

console.log(arr1.length);
console.log(arr1.join(' ')); 
}else{
alert("不好意思,你输入的数已经大于100了");
} 
}

解析:关于排序的,有冒泡排序,快速排序,插入排序,希尔排序,选择排序,归并排序,堆排序,基数排序,计数排序,桶排序等等。

关于数组去重的实现方法,常用的有遍历数组,对象键值对,数组下标判断,排序后相邻去除法,优化遍历数组等等。

本题排序方法采用一种最基本的方法就是冒泡方法,冒泡方法实质就是相邻排序了,依次比较相邻的两个值,如果我比你小,我就在你前面,反之就在你后面,按照这种方法多次,直到顺序正确。

去重的方法也是采用最基本的遍历数组法,思路是新建立一个数组,值不在数组中,就填入数组,简单粗暴。哈哈。采用了js中的indexof()方法,indexof()方法原意指的是可返回某个指定的字符串在字符中首次出现的位置。但是它也有这样的一个性质,注意:如果要检索的字符串没有出现,则返回-1,这正是我们需要的。

看题干:N个1到1000之间的随机整数(N小于等于100)

整数:嗯嗯此时应该想到这个parseInt()方法;

随机:想到了Math.random();

1到1000的随机整数: var num=parseInt(Math.random()*(1000-1)+1);这种组合的方法蛮有效果的。

填入数组:arr.push()方法;接下来判断原数组的数是否在新数组arr1中,if(arr1.indexOf(arr[i])==-1) arr1.push(arr[i]);

填入数组的事已经完成了,接下来就是排序的问题了。冒泡(简单粗暴)。生成随机数组的个数,就用数组的长度喽,arr.length.

还有提到的是用空格隔开:join(' ');

在chrome,f12下跑的结果如下:

js排序与重组的实例讲解

去重和排序后的结果

js排序与重组的实例讲解

以上这篇js排序与重组的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 删除字符串最后一个字符的实现代码
Feb 20 Javascript
javascript解三阶幻方(九宫格)
Apr 22 Javascript
JQuery中层次选择器用法实例详解
May 18 Javascript
JavaScript的代码编写格式规范指南
Dec 07 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
Jan 23 Javascript
浅谈jquery点击label触发2次的问题
Jun 12 Javascript
jQuery实现图片滑动效果
Mar 08 Javascript
JavaScript队列函数和异步执行详解
Jun 19 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
Sep 19 Javascript
JavaScript实现多态和继承的封装操作示例
Aug 20 Javascript
微信小程序云开发之使用云存储
May 17 Javascript
最新最全的手机号验证正则表达式
Feb 24 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
Aug 28 #Javascript
JS自定义函数实现时间戳转换成date的方法示例
Aug 27 #Javascript
JavaScript学习笔记之惰性函数示例详解
Aug 27 #Javascript
Vue实现typeahead组件功能(非常靠谱)
Aug 26 #Javascript
vue下跨域设置的相关介绍
Aug 26 #Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 #Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
Jun 19 #Javascript
You might like
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
javascript 学习之旅 (2)
2009/02/05 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
详解javascript高级定时器
2015/12/31 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
python基础教程之获取本机ip数据包示例
2014/02/10 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
大学生年度自我鉴定
2013/10/31 职场文书
夜大毕业生自我鉴定
2013/10/31 职场文书
高中毕业生个人自我鉴定
2013/11/24 职场文书
学校后勤人员职责
2013/12/27 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
县委常委班子对照检查材料思想汇报
2014/09/28 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
表扬信格式模板
2015/05/05 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers
方法汇总:Python 安装第三方库常用
2022/04/26 Python