【总结】JS里的数组排序
虽然贴了2种办法,但是思路是一致的,都是先从数组里找出最小值,一种是找到一个放进新数组;
另一种是找到后和第i个数交换,i每次自增
主要用到2个函数:
- 从一个数组里找出最小值;
- 两个元素互换位置
function findMin(arr,start){//第二个参数是标明从第几位开始找
var n = arr[start];
var index =0;
for(var i=start; i<arr.length; i++){
if(arr[i]<=n){
n = arr[i];
index = i;
}
}
return index;
}
function findMin2(arr){//这个默认从第0位开始找
var n = arr[0];
var index =0;
for(var i=0; i<arr.length; i++){
if(arr[i]<=n){
n = arr[i];
index = i;
}
}
return index;
}
var arr =[3,5,1,8,39,4];
//alert(findMin(arr,3));
//方法一,先找最小值,跟第一个换位置,再找第二小,和第二位对换位置,一次类推
function mySort2(arr){
var mid =0;
for(var i=0; i<arr.length; i++){
mid = arr[i];
arr[i]= arr[findMin(arr,i)];
arr[findMin(arr,i)]= mid;
}
return arr;
}
//alert(mySort2(arr));
//方法二:定义一个新数组,每次循环的时候找到最小值,把这个最小值push到新数组里,再把这个数从原数组中删除。
function mySort3(arr){
var newArr =[];
for(var i=0; i<arr.length; i++){
newArr.push(arr[findMin2(arr)]);//这个findMin2是不用传第二个参数的
arr.splice(findMin2(arr),1);
i--;
}
return newArr;
}
alert(mySort3(arr));
【总结】JS里的数组排序的更多相关文章
- JS二维数组排序组合
需求是这样的:http://q.cnblogs.com/q/29093/ 这里简述一下: 现在有一个不确定长度的数组.比如:var temp=[["Fu","Hai&qu ...
- PHP中的__toString方法(实现JS里的链式操作)
_toString方法是在打印对象时自动调用的魔术方法,如果不声明会报以下错 Catchable fatal error: Object of class String could not be co ...
- 理解 Node.js 里的 process.nextTick()
有很多人对Node.js里process.nextTick()的用法感到不理解,下面我们就来看一下process.nextTick()到底是什么,该如何使用. Node.js是单线程的,除了系统IO之 ...
- chart.js 里添加图表的清单:
chart.js 里添加图表的清单: var legend = myDoughnut.generateLegend(); $("#chart_legend").html(legen ...
- js笔记——js里var与变量提升
var是否可以省略 一般情况下,是可以省略var的,但有两点值得注意: 1.var a=1 与 a=1 ,这两条语句一般情况下作用是一样的.但是前者不能用delete删除.不过,绝大多数情况下,这种差 ...
- js里cookie操作
原生js操作cookie 创建和存储 cookie 在这个例子中我们要创建一个存储访问者名字的 cookie.当访问者首次访问网站时,他们会被要求填写姓名.名字会存储于 cookie 中.当访问者再次 ...
- JS里设定延时:js中SetInterval与setTimeout用法
js中SetInterval与setTimeout用法 JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操 ...
- js里function的apply vs. bind vs. call
js里除了直接调用obj.func()之外,还提供了另外3种调用方式:apply.bind.call,都在function的原型里.这3种方法的异同在stackoverflow的这个答案里说的最清楚, ...
- js里各浏览器解析XML,支持IE、火狐、Chrome等
js在chrome中加载XML,js加载XML支持ff,IE6+,Opera等浏览器 见代码: <!doctype html> <html lang="en"&g ...
随机推荐
- ORA-00942:table or view does not exist
好好的表都建成功了,在PL/SQL中编辑数据时给我来这个提示,起的我没办法了.查到如下: oracle建表时有一个严重的问题,在此写出来,提醒大家注意: 先简单写一下错误内容,如各位已经发现过此问题并 ...
- HTTPURLConnection 发送Post数据
在使用HTTPURLConnection发送POST数据时,通常使用如下方式: byte[] body = new byte[512]; // 需要发送的body数据 URL url = new UR ...
- Python::re 模块 -- 在Python中使用正则表达式
前言 这篇文章,并不是对正则表达式的介绍,而是对Python中如何结合re模块使用正则表达式的介绍.文章的侧重点是如何使用re模块在Python语言中使用正则表达式,对于Python表达式的语法和详细 ...
- GWAS Simulation
comvert hmp to ped1, ped2, map fileSB1.ped, SB2.ped, SB.map 1, choose 20 markers for 30 times(WD: /s ...
- 判断App运行是否在前台
转自:http://notes.stay4it.com/2016/02/26/check-if-app-is-running-forground/ 在一些场景中,经常会需要判断App是否在后台运行,比 ...
- java虚拟机之垃圾收集器
serial收集器: 最基本的,是一个单线程收集器,只会使用一个CPU或者一条收集线程去完成垃圾收集, 更重要的是 在进行垃圾收集时,其他任务线程必须停止,serial收集器任然是client模式下的 ...
- cache缓存帮助类
public class CacheHelper { /// <summary> /// 创建缓存项的文件 /// </summary> /// <param name= ...
- HTML CSS中比较重要的
在网页中有了HTML和CSS之后,我们还需要学会布局,我们可以将整个网页看做是一个DIV,然后将所有内容放入到这个DIV中. 内容中的每一块我们都可以用DIV包起来,我们将这个DIV看做一个盒子,然后 ...
- Windows 10 安装TA-Lib python库
由于需要和朋友比对一个结果,需要在Windows 10中安装TA-Lib库,写点简单的python代码. 本来以为就简单的执行下pip install TA-Lib就OK了. 然后,安装失败: fat ...
- 全面解析sizeof(下) 分类: C/C++ StudyNotes 2015-06-15 10:45 263人阅读 评论(0) 收藏
以下代码使用平台是Windows7 64bits+VS2012. sizeof作用于基本数据类型,在特定的平台和特定的编译中,结果是确定的,如果使用sizeof计算构造类型:结构体.联合体和类的大小时 ...