我有一个2D数组,其结构如下:
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]].
非常感谢提前。
答案 0 :(得分:2)
你可以做一个简单的排序:
image_array.sort(function(a, b) {
return a[1] - b[1];
})
答案 1 :(得分: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 /*
在此示例中,“比较函数”的a
和b
参数将是“外部”数组的元素。由于您有一个数组数组,a
和b
将是['image1.jpg', 1]
形式的数组。 compare函数只检查这些元素的第二个元素,如果a
中的第二个元素小于b
中的第二个元素,则返回true。这允许sort()
方法确定“外部”数组中的哪个“子数组”应该首先出现。
您可以看到它的一个示例here。