[英]Sorting an array of arrays of integers
我有一个可变维度,其中包含数组每个元素的最大大小,例如:
const dimensions = [10, 6, 4]
我还有一个数组数组,其中包含与dimensions
数组大小一样多的整数,例如:
let boxes = [
[1, 2, 1],
[10, 2, 4],
[4, 1, 1],
[10, 2, 3]
]
对于boxes
每个数组,没有元素的dimensions
会高于其对应元素。
我想找到一种对这些数组进行排序的方法,以便排序后的数组boxes
是:
[
[1, 2, 1],
[4, 1, 1],
[10, 2, 3],
[10, 2, 4]
]
如您所见,这不仅仅是按数组的第一个元素排序。 它按第一个元素排序,如果它们相等,则按第二个元素排序,以此类推。
对于每个数组数组,我都有一个相关的dimensions
变量。 但是维度可以是任何东西(也可以是任何长度!)(因此,数组当然具有相同的长度)。
我在 Javascript 中这样做,但也欢迎使用伪代码。
PS - 这不是作业的一部分,我试图抽象掉大部分不必要的东西。
您可以使用Array.reduce
对值进行排序以比较每个正在排序的数组中的值,仅在当前为0
时才更新比较结果(即到目前为止的值已经相等):
let boxes = [ [1, 2, 1], [10, 2, 4], [4, 1, 1], [10, 2, 3] ] boxes.sort((a, b) => a.reduce((c, v, i) => c ? c : v - b[i], 0)); console.log(boxes);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.