在JavaScript中对数组进行排序
我正在尝试对一个包含整数的数组进行排序,例如:在JavaScript中对数组进行排序,javascript,Javascript,我正在尝试对一个包含整数的数组进行排序,例如: var array = [[123, 3], [745, 4], [643, 5], [643, 2]]; 如何对其进行排序以返回以下内容 array = [[745, 4], [643, 2], [643, 5], [123, 3]]; 您可以使用排序方法,先按第一个元素排序,然后按第二个元素排序 var数组=[[123,3]、[745,4]、[643,5]、[643,2]; sort(([a,b],[c,d])=>c-a | | b-d)
var array = [[123, 3], [745, 4], [643, 5], [643, 2]];
如何对其进行排序以返回以下内容
array = [[745, 4], [643, 2], [643, 5], [123, 3]];
您可以使用
排序
方法,先按第一个元素排序,然后按第二个元素排序
var数组=[[123,3]、[745,4]、[643,5]、[643,2];
sort(([a,b],[c,d])=>c-a | | b-d);
console.log(array)
您可以将自定义比较函数传递给array.prototype.sort()
,如下所示:
var sortedArray = array.sort(function(a, b) { return a - b; });
这将按升序对整数数组进行排序。比较函数应返回:
- 如果希望
出现在a
之前,则小于b
的整数0
- 如果希望
出现在b
之前,则大于a
的整数0
如果0
和a
相同b
var sortedArray = array.sort(function(a, b) {
return b[0] - a[0];
});
如果要对每个子数组的两个元素进行排序(即按第一个元素降序排序,如果它们相同,则按第二个元素降序排序),可以执行以下操作:
var sortedArray = array.sort(function(a, b) {
if (a[0] == b[0]) {
return a[1] - b[1];
}
return b[0] - a[0];
});
有关更多信息,请参阅。假设您希望按照示例中的第一个索引进行排序,那么函数的存在就是为了解决您的问题
let ans = [[123, 3], [745, 4], [643, 5], [643, 2]].sort( (a, b) => {
return b[0] - a[0]
})
console.log(ans)
嗯,你确定在问这个之前你已经查过了吗?这是一个比较简单的排序方法(所有文档都介绍了这个方法),您是按每个数组中的第一个元素排序,还是按每个数组中最大的元素排序?另外,到目前为止您做了哪些尝试?可能重复按每个数组中的第一个元素排序的@mhodges