js数组元素由小到大排序实例代码

js数组元素由小到大排序实例代码:
有时候需要对数组中的数字进行排序,下面是一段将数组中数字由小到大排序的代码实例,希望能够帮到大家。
实例代码如下:

var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];
var len=arr.length;
console.log(arr.join(","));
var newarr=[];
for(var i=0;i<len;i++){
  newarr.push(Math.min.apply(null,arr));
  arr.splice(r(arr,Math.min.apply(null,arr)),1);
}
//找到最小值在数组中的位置
function r(s,v){
  for(k in s){
    if(s[k]==v){
      return k;
    }
  }
}
console.log(newarr.join(","))

以上代码实现排序要求,下面简单介绍一下它的实现过程。
一.实现原理:
代码简单,原理也比是如此。就是创建一个新的数组newarr,然后使用使用Math.min.apply()获取原数组中的最小值,并将这个值放入新的数组,然后再删除元素中的这个最小值,这样旺夫循环,就实现了此功能,具体参看代码注释。
二.代码注释:
1.var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98],创建一个数组。
2.var len=arr.length,将数组的长度赋值给变量len。
3.console.log(arr.join()),返回由数组元素组成的字符串,字符串以逗号分隔。
4.var newarr=[],创建一个空数组。
5.for(var i=0;i<len;i++){},遍历数组中的元素。
6.newarr.push(Math.min.apply(null,arr)),将数组arr中的最小值放入新的数组newarr。
7.arr.splice(r(arr,Math.min.apply(null,arr)),1),删除arr数组中的最小值。
8.function r(s,v){},此函数可以返回数组中指定元素的索引,参数s是数组,参数v是数组中的一个值。
9.for(k in s){},遍历数组中的元素。
10.if(s[k]==v){ return k;},如果传入的值等于相应索引数组元素的值,就返回这个索引K。
11.console.log(newarr.join(","))输出新数组元素。
三.相关阅读:
1.join()函数可以参阅javascript的Array对象的join()方法一章节。
2.push()函数可以参阅JavaScript的Array对象的push()方法一章节。
3.Math.min()函数可以参阅javascript的Math.min()方法一章节。 
4.apply()函数可以参阅javascript的call()和apply()的作用和区别一章节。 
5.splice()函数可以参阅javascript的Array对象的splice()方法一章节。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9381

更多内容可以参阅:http://www.softwhy.com/javascript/

时间: 2024-08-10 23:57:17

js数组元素由小到大排序实例代码的相关文章

js对数组元素大小排序实例代码

js对数组元素大小排序实例代码:在实际应用中,有时候需要对数组中的元素按照大小来进行排序,当然是先排序的方法有多种,比如使用数组对象自带的sort()方法,本章节再来分享一种其他的方式,先看代码实例: var org=[5,4,3,2,1,6,7,9,8,10]; var tempArr=new Array(); for(var i=0;i<org.length;i++) { if(i==0) { tempArr[0]=org[0]; //把第一个元素放到新序列 } else { for(var

c# 逆转数组元素的排序

c#中逆转数组元素的排序实例代码如下: private string[] G_str_array;//定义字符串数组字段 private void Frm_Main_Load(object sender, EventArgs e) { G_str_array = new string[] {"C#-1","C#-2","C#-3","C#-4","C#-5"};//为字符串数组字段赋值 foreach (s

使用函数指针,完成一个sort()函数,能对任何类型的数组元素进行排序: 回调函数 以及 memcpy ()原型实现

进来复习了一下C语言指针,一直没有写过太多关于函数指针的代码,而且对回调函数的理解一直都是在理论上,基本上没有太写过关于它的代码,进来得空,写了一个小程序加深下自己对回调函数和函数指针的理解. 问题描述: 编写一个sort()函数,使它能够对任何类型的数组元素进行排序. 下面是我写的代码: /* 使用函数指针的回调函数技巧,设计一个能排序int 和char 数组的sort()函数 */ #include<stdio.h> #include<stdlib.h> #include<

随机获取数组元素 和 数组元素随机排序

<script type="text/javascript"> //随机取得数组中的一个元素 function Rand(){ var arr=[11,22,33,44]; var a=Math.floor(Math.random()*arr.length);//Math.floor(Math.random()); //Math.floor()方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数. //alert(Math.random()*arr.

js取滚动条的尺寸实例代码

分享一个js取滚动条的尺寸的函数代码,很简单,很实用. 创建一个嵌套节点,让外层节点产生滚动条,然后用offsetWidth - clientWidth即可获得滚动条宽度. 注意,为了避免页面抖动,可以设置外层元素position:absolute和visibility:hidden 完整代码: function getScrollWith(){ var wrap = setAttributes(document.createElement('div'),{ style : { width :

jQuery添加和删除元素class属性实例代码

jQuery添加和删除元素class属性实例代码:元素的的class属性一般是用来设置样式之用,所以添加或者删除都意味着改变元素的样式,下面就介绍一下如何使用jQuery来删除和添加元素的class属性值,希望能够给大家带来一定的帮助.代码实例如下: function switchTeachControl() { var target=$("#thediv"); if(target.hasClass("controlOff")) { target.removeCla

让无序数组元素进行排序,排序完后将排序后元素对应的原先元素的位置输出

题目: 让无序数组元素进行排序,排序完后将排序后元素对应的原先元素的位置输出 (1)方法1 方法1:先将数组元素原先的对应位置记录在另一个数组中       并在进行选择排序的过程中,交换数组元素的同时也交换对应位置数组中的对应元素值 /* 选择法排序 并在排序后的数组元素在原先数组的对应位置输出 方法1:先将数组元素原先的对应位置记录在另一个数组中 并在进行选择排序的过程中,交换数组元素的同时也交换对应位置数组中的对应元素值 */ #include <iostream> using name

对数组元素进行排序的方法总结(利用C++)

首先,对数组元素进行排序方法总结为以下三种: 1.插入排序 2.选择排序 3.交换排序,即冒泡排序 接下来,分别对其进行讨论: 1.插入排序 算法思想:每一步将一个待排序元素按其关键字值的大小插入到已排序序列的适当位置上,直到待排序元素插入完为止. 算法实现: 测试结果: 2.选择排序 算法思想:每次从待排序序列中选择一个关键字最小的元素(当需要按关键字升序排列时),顺序排在已排序序列的最后,直至全部排完. 算法实现: 测试结果: 3.交换排序(冒泡排序) 算法思想:两两比较待排序序列中的元素,

js的dom测试及实例代码

js的dom测试及实例代码 一.总结 一句话总结: 1.需要记得 创建 标签和创建文本节点都是document的活:document.createTextNode("Rockets的姚明"); 2.appendChild就是 标签 都可以干的活:document.body.appendChild(hr1); 1.需要记得 创建 标签和创建文本节点都是document的活? var div1 = document.createElement("div"); var t