微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对整数数组进行排序

如何解决对整数数组进行排序

我有一个可变的尺寸,其中包含数组中每个元素的最大尺寸,例如:

const dimensions = [10,6,4]

我还有一个数组数组,其中包含与dimensions数组大小一样多的整数,例如:

let Boxes = [
    [1,2,1],[10,4],[4,1,3]
]

对于Boxes中的每个数组,没有元素会比dimensions中的对应元素高。

我想找到一种方法排序这些数组,以便排序后的数组Boxes为:

[
    [1,3],4]
]

正如您所看到的,这不仅仅是关于按数组的第一个元素进行排序。它按第一个元素排序,如果相等,则按第二个排序,依此类推。

对于每个数组数组,我都有一个相关的dimensions变量。但是维数可以是任何值(也可以是任何 length !)(因此,数组的长度当然是相同的)。

我正在用Javascript进行此操作,但是也欢迎使用伪代码

PS-这不是作业的一部分,我试图将大部分不必要的内容抽象出来。

解决方法

您可以使用Array.reduce对值进行排序,以比较每个要排序的数组中的值,仅当比较结果当前为0时才更新比较结果(即,到目前为止的值相等):

let boxes = [
  [1,2,1],[10,4],[4,1,3]
]

boxes.sort((a,b) => a.reduce((c,v,i) => c ? c : v - b[i],0));

console.log(boxes);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?