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 相关文章推荐
使一个函数作为另外一个函数的参数来运行的javascript代码
Aug 13 Javascript
javascript RadioButtonList获取选中值
Apr 09 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
javascript + jquery实现定时修改文章标题
Mar 19 Javascript
js对象继承之原型链继承实例
Jan 10 Javascript
JS选项卡动态替换banner图片路径的方法
May 11 Javascript
JavaScript每天必学之数组和对象部分
Sep 17 Javascript
vue全局组件与局部组件使用方法详解
Mar 29 Javascript
小试SVG之新手小白入门教程
Jan 08 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
Jan 24 Javascript
使用post方法实现json往返传输数据的方法
Mar 30 Javascript
如何用原生js写一个弹窗消息提醒插件
May 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
Adodb的十个实例(清晰版)
2006/12/31 PHP
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
jQuery的三种$()
2009/12/30 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
Python实现简单过滤文本段的方法
2017/05/24 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
出纳员岗位责任制
2014/02/11 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
挂牌仪式主持词
2014/03/20 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书