700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > JavaScript 数组排序 随机排序 查找最大(最小)值 对象属性进行排序

JavaScript 数组排序 随机排序 查找最大(最小)值 对象属性进行排序

时间:2019-07-02 07:45:52

相关推荐

JavaScript 数组排序 随机排序 查找最大(最小)值 对象属性进行排序

JavaScript 数组排序

1.数组排序- - -sort()

根据首字符进行排序,a-z。注意:会改变原数组

var array=["c","d","e","a"]document.write(array.sort())

a,c,d,e

2.反转数组- - - reverse()

表面意思,前后反转。注意:会改变原数组

var array=["a","b","c","d"]document.write(array.reverse())

d,c,b,a

3.数字排序- - -sort()+比值函数

按数字大小排序

function sortNumber(a, b){return b - a}var arr = new Array(6)arr[0] = "10"arr[1] = "5"arr[2] = "40"arr[3] = "25"arr[4] = "1000"arr[5] = "1"document.write(arr + "<br />")document.write(arr.sort(sortNumber))

结果(这里需要写一个比值函数,不然就会按照第一个数字进行排序),从小到打就a,b交换位置。

10,5,40,25,1000,1

1000,40,25,10,5,1

3.1比值函数

比较函数的目的是定义另一种排序顺序。

比较函数应该返回一个负,零或正值,这取决于参数:

function(a, b){return a-b}

当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。

实例:

当比较 40 和 100 时,sort() 方法会调用比较函数 function(40,100)。

该函数计算 40-100,然后返回 -60(负值)。

排序函数将把 40 排序为比 100 更低的值。

您可以使用下面的代码片段来测试数值和字母排序:

<button onclick="myFunction1()">以字母顺序排序</button><button onclick="myFunction2()">以数字顺序排序</button><p id="demo"></p><script>var points = [40, 100, 1, 5, 25, 10];document.getElementById("demo").innerHTML = points;function myFunction1() {points.sort();document.getElementById("demo").innerHTML = points;}function myFunction2() {points.sort(function(a, b){return a - b});document.getElementById("demo").innerHTML = points;}</script>

4.随机顺序排序数组

也是基于比值函数的,通过Math.random()生成一个0-1的小数

function sortArray(a, b){return 0.5-Math.random()}var array=[1,2,3,4]document.write(array)document.write("<br/>")document.write(array.sort(sortArray))

5.查找数组最大值(最小值)

除了使用sort+比值函数来查找以外,还可以通过Math.max.apply与Math.min.apply直接查找值

var array=[1,2,3,4]document.write(Math.max.apply(null, array))document.write("<br/>")document.write(Math.min.apply(null, array))

4

1

6.对象属性进行排序(高级)

var array = [{id: 9, name: 'jack' },{id: 15, name: 'tom' },{id: 1, name: 'lili' }]function sortArray(a, b) {return a.id - b.id}array.sort(sortArray)for (var i = 0; i < array.length; i++) {document.write(array[i].id + ':' + array[i].name)document.write("<br/>")}

1:lili

9:jack

15:tom

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。