Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中对数组进行排序_Javascript - Fatal编程技术网

在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