如何对二维javascript数组进行排序?

时间:2014-10-26 09:28:08

标签: javascript arrays sorting

var global=[];
var value=[50,1,4,29];
var title=["d","b","c","a"];

title.forEach(function(title,i) {
    global[title]=value[i];
})

我想按值对全局数组进行排序,但我无法弄清楚如何。

我确切地说我不能使用任何库jquery,下划线......

谢谢!

目标是知道哪个对象的价值较低。 a,b,c,d的值为50,1,4,29

我可以对值进行排序,但如何知道与此值关联的名称是什么?

1 个答案:

答案 0 :(得分:0)

您未正确使用global[]作为循环中的数组。您无法使用[title]引用数组项,您可以push引用数组global.push(value[i])或使用global[i] = value[i]。如果您使用这些方法中的任何一种,您只需拨打' global.sort()'排序将给你[1, 29, 4, 50]的数组。如果要将数组用作多维,则需要将循环更改为:

title.forEach(function(title,i) {
    global[i] = {};
    global[i][title]=value[i];
})

将为您提供[Object { d=50}, Object { b=1}, Object { c=4}, Object { a=29}]

如果你想对它进行排序,你可以使用sort,它可以使用一个函数来编写你的自定义排序器,但我不认为你可以使用它,因为你的所有键都不同。如果您的所有密钥都相同,请说'value',即[Object { value=50}, Object { value=1}, Object { value=4}, Object { value=29}],您可以这样做:

global.sort(function(a,b) {
    return parseInt(a.value, 10) - parseInt(b.value, 10);
});

但由于所有键都不同,因此无法应用于您的阵列。