Javascript 2D数组排序-按数值
我已经看到了另外两篇类似于这个问题的帖子,但是没有一篇适合我的场景,而且我也不知道如何解决这个问题(比如) 我将解释我在JavaScript中面临的问题 我有两个数组,用于在第三方产品中创建图表。我有以下变量 标签[“库存A”、“库存B”、“库存C”、“库存D”] 值[“200”、“1000”、“900”、“800”] 我想要一个2D阵列 分类[“库存B,1000”,“库存C,900”,“库存D,800”,“库存A,200”] 如果可能的话,我想按数值排序。问题是,当我在上面发布的问题中使用解决方案时,它只会将该值与另一个值进行比较。我需要这个来检查数组中已经存储的每个值 上周,我在某个地方找到了另一个非常冗长的方法,但它是将诸如100、1000之类的值排列在一起——我认为这不是整数等等,但没有这样的运气。我在周五愤怒地删除了代码 我希望那里的一些善良的灵魂能帮助一个新的编码员。O值以字符串形式输入,因此需要将其转换为整数 数组中有无限数量的条目,一旦我对这些条目进行了正确的排序,我需要保留前10个条目,然后将其他条目分组到一个组中,总共有11个条目。然而,我需要在解决这个问题之前进行分类 提前谢谢 我想要一个2D阵列Javascript 2D数组排序-按数值,javascript,sorting,multidimensional-array,Javascript,Sorting,Multidimensional Array,我已经看到了另外两篇类似于这个问题的帖子,但是没有一篇适合我的场景,而且我也不知道如何解决这个问题(比如) 我将解释我在JavaScript中面临的问题 我有两个数组,用于在第三方产品中创建图表。我有以下变量 标签[“库存A”、“库存B”、“库存C”、“库存D”] 值[“200”、“1000”、“900”、“800”] 我想要一个2D阵列 分类[“库存B,1000”,“库存C,900”,“库存D,800”,“库存A,200”] 如果可能的话,我想按数值排序。问题是,当我在上面发布的问题中使用解决
排序[“库存B,1000”,“库存C,900”,“库存D,800”,“库存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.sort(function(a, b) {
var avalue = a.quantity,
bvalue = b.quantity;
if (avalue < bvalue) {
return -1;
}
if (avalue > bvalue) {
return 1;
}
return 0;
});
…您可以这样排序:
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.sort(function(a, b) {
var avalue = a.quantity,
bvalue = b.quantity;
if (avalue < bvalue) {
return -1;
}
if (avalue > bvalue) {
return 1;
}
return 0;
});
sorted.sort(函数(a,b){
var avalue=a.数量,
b值=b.数量;
if(avaluebvalue){
返回1;
}
返回0;
});
我想要一个2D阵列
排序[“库存B,1000”,“库存C,900”,“库存D,800”,“库存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.sort(function(a, b) {
var avalue = a.quantity,
bvalue = b.quantity;
if (avalue < bvalue) {
return -1;
}
if (avalue > bvalue) {
return 1;
}
return 0;
});
…您可以这样排序:
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.sort(function(a, b) {
var avalue = a.quantity,
bvalue = b.quantity;
if (avalue < bvalue) {
return -1;
}
if (avalue > bvalue) {
return 1;
}
return 0;
});
sorted.sort(函数(a,b){
var avalue=a.数量,
b值=b.数量;
if(avaluebvalue){
返回1;
}
返回0;
});
@TJ-谢谢,我能问一下您如何/为什么使用a.quantity吗?在我的例子中,那会是值吗?为什么不只是return(a-b)代码>?这两个if
语句似乎没有必要。@ErikE:我只是习惯了这样写(例如,字符串之类的)。当然你是对的,如果你在做数字,你可以做返回a.quantity-b.quantity代码>@TJ-谢谢你,我能问一下你怎么/为什么使用a.quantity吗?在我的例子中,那会是值吗?为什么不只是return(a-b)代码>?这两个if
语句似乎没有必要。@ErikE:我只是习惯了这样写(例如,字符串之类的)。当然你是对的,如果你在做数字,你可以做返回a.quantity-b.quantity代码>