我见过另外几个类似这个问题的帖子,但没有一个适合我的场景,并且不知道如何解决这个问题(例如按第二个值排序2D数组)
我将解释我在JavaScript中面临的问题;
我有两个数组,我正在使用它们在第三方产品中创建图表。我有以下变量:
标签("股票"、"股票B"、"股票C","D"
value["200", "1000", "900", "800"]
我希望这是一个二维数组
已排序["股票B, 1000","股票C, 900", "股票D, 800", "股票A, 200"]
如果可能的话,我想按数值排序。问题是,当我在上面发布的问题中使用解决方案时,它只将值与另一个值进行比较。我需要这个遍历数组中已经存储的每个值。
我上周在某个地方发现了另一种非常漫长的方式,但它是排序值,如100,1000彼此相邻-我认为这不是整数等,但没有这样的运气。周五我一怒之下删除了代码。
我希望那里有一些善良的灵魂可以帮助一个新的编码员。输入的值是字符串,所以需要转换成整型。
数组中有无限数量的条目,一旦我对这些条目进行了正确排序,我需要保留前10个条目,然后将其他条目分组为一组,总共有11个条目。但是我需要在解决这个问题之前进行排序。
我希望这是一个二维数组
sorted["Stock B, 1000","Stock C, 900", "Stock D, 800", "Stock A, 200"]
这不是一个二维数组,这是一个一维字符串数组。这将是一个二维数组:
sorted = [["Stock B", 1000], ["Stock C", 900], ["Stock D", 800], ["Stock A", 200]];
…您可以按第二个值排序,如下所示:
sorted.sort(function(a, b) {
var avalue = a[1],
bvalue = b[1];
if (avalue < bvalue) {
return -1;
}
if (avalue > bvalue) {
return 1;
}
return 0;
});
但是你最好使用一个单维的对象数组:
sorted = [
{name: "Stock B", quantity: 1000},
{name: "Stock C", quantity: 900},
{name: "Stock D", quantity: 800},
{name: "Stock A", quantity: 200}
];
…你可以这样排序:
sorted.sort(function(a, b) {
var avalue = a.quantity,
bvalue = b.quantity;
if (avalue < bvalue) {
return -1;
}
if (avalue > bvalue) {
return 1;
}
return 0;
});