数组在javascript中排序

时间:2020-02-23 14:33:46  来源:igfitidea点击:

排序允许我们以所需的形式排列数据。
意思是,访问和处理此数据变得更容易。
在本文中,"阵列中JavaScript中"中,我们将探索在JavaScript中排序数据的不同方式。

在JavaScript中排序方法

sort()方法相应地对数组中存在的元素进行排序,并将排序阵列返回给用户的输出。
内置方法将数组中存在的每个元素转换为字符串,并将其与Unicode代码点顺序进行比较。
虽然首先从安装开始。

下面的代码遵循最基本的数组排序:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">  
</head>
<body>
<script>
var music = ["Pop", "Rock", "Jazz", "Blues", "Metal"];
var sorted = music.sort();
document.write(music + "<br>");  
</script>
</body>
</html>

现在让我们继续"javascript中的数组",看看我们如何对数字值进行排序,

排序数值

作为字符串的排序编号产生错误和不正确的结果。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">  
</head>
<body>
<script>
var music = ["Pop", "Rock", "Jazz", "Blues", "Metal"];
var sorted = music.sort();
document.write(music + "<br>");  
</script>
</body>
</html>

10,100,34,45,69,87

结果似乎绝对不准确。
发生这种情况是因为数字数组通过sort()方法将转换为字符串。
使用比较函数可以消除问题。

该函数的语法如下:

array.sort([compareFunction])

比较函数基于不同的属性和不同的顺序对数组中存在的元素进行排序。
sort()函数比较两个值并将值发送到比较函数。
比较函数遵循下面给出的测试用例:

  • 如果比较两个值(A&B)的结果是否定的,则在B之前对A进行排序。

  • 如果结果似乎是正的,则B在a之前排序。

  • 如果结果为0,则不会以值A&B的排序顺序出现更改。

在该阵列中排序在JavaScript中,我们将按升序排序数据,

按升序排序阵列

以下示例演示了按升序排序数组的过程。

<!DOCTYPE html>
<html>
<body>
<script>
var num = [45, 34, 69, 87, 100, 10];
num.sort(); //Sorts numbers array
document.write(num);
</script>
</body>
</html>

3,18,25,28,29,69

移动进一步让我们结帐如何按降序排序阵列

按降序排序阵列

可以以下列方式按降序排序数组:

<!DOCTYPE html>
<html>
<body>
<script>
var num = [3, 25, 18, 28, 69, 29];
//Sorting an array using compare function
num.sort(function(a, b) {
return a - b;
});
document.write(num);
</script>
</body>
</html>

69,29,28,25,18,3

我们甚至可以对物体阵列进行排序,让我们看看如何做到这一点,

排序对象数组

比较函数可用于以有效的方式对对象阵列进行排序。

<!DOCTYPE html>
<html>
<body>
<script>
var people = [
{ name: "Jeremy"},
{ name: "Ari" },
{ name: "Jonathan"},
{ name: "Alec"},
{ name: "Stephen"}
];
//Sort by name
people.sort(function(a, b) {
var x = a.name.toLowerCase(); //ignore upper and lowercase
var y = b.name.toLowerCase(); //ignore upper and lowercase
if(x < y) {
return -1;
}
if(x > y) {
return 1;
}
//names should be equal
return 0;
});    
//Loop through all the elements in the array 
for(var i in people)  {  
//Loop through all the properties in the object  
for(var prop in people[i]) {  
document.write(prop + ": " + people[i][prop] + "<br>"); 
}
document.write("<hr>");
}