1

我有一个结构如下的二维数组:

image_arrary[[image1.jpg, 1][image2.jpg, 2][image3.jpg, 3]]

内部数组元素是 image_name 和 image_order

用户可以单击一个按钮,该按钮将更改图像的顺序,因此单击后数组看起来像这样

image_arrary[[image1.jpg, 1][image2.jpg, 3][image3.jpg, 2]]

如何重新排列数组,以便数组按 image_order 排序,看起来像这样?

image_arrary[[image1.jpg, 1][image3.jpg, 2][image2.jpg, 3]].

提前谢谢了。

4

2 回答 2

2

你可以做一个简单的排序:

image_array.sort(function(a, b) {
   return a[1] - b[1];
}) 
于 2013-08-29T13:35:46.820 回答
1

JavaScript 中的数组有一个sort()可以接受可选参数的方法;此参数是一个函数,您可以在其中定义一些自定义比较代码,以帮助该sort()方法确定哪个数组元素“更大”。因此,对于您的示例,您可以执行以下操作:

var inputArray = [
    ['image1.jpg', 1],
    ['image2.jpg', 3],
    ['image3.jpg', 2]
];

inputArray.sort(function(a, b) {
    return a[1] - b[1];
});

/* inputArray is now sorted /*

在此示例中,“比较函数”的ab参数将是“外部”数组的元素。由于您有一个数组数组,a并且b将以['image1.jpg', 1]. compare 函数只检查其中的第二个元素,如果 in 的第二个元素a小于in 的第二个元素,则返回 true b。这允许该sort()方法确定“外部”数组中的哪个“子数组”应该首先出现。

您可以在此处查看它的工作示例。

于 2013-08-29T13:50:29.420 回答