Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 2D数组排序-按数值_Javascript_Sorting_Multidimensional Array - Fatal编程技术网

Javascript 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”] 如果可能的话,我想按数值排序。问题是,当我在上面发布的问题中使用解决

我已经看到了另外两篇类似于这个问题的帖子,但是没有一篇适合我的场景,而且我也不知道如何解决这个问题(比如)

我将解释我在JavaScript中面临的问题

我有两个数组,用于在第三方产品中创建图表。我有以下变量

标签[“库存A”、“库存B”、“库存C”、“库存D”]

值[“200”、“1000”、“900”、“800”]

我想要一个2D阵列

分类[“库存B,1000”,“库存C,900”,“库存D,800”,“库存A,200”]

如果可能的话,我想按数值排序。问题是,当我在上面发布的问题中使用解决方案时,它只会将该值与另一个值进行比较。我需要这个来检查数组中已经存储的每个值

上周,我在某个地方找到了另一个非常冗长的方法,但它是将诸如100、1000之类的值排列在一起——我认为这不是整数等等,但没有这样的运气。我在周五愤怒地删除了代码

我希望那里的一些善良的灵魂能帮助一个新的编码员。O值以字符串形式输入,因此需要将其转换为整数

数组中有无限数量的条目,一旦我对这些条目进行了正确的排序,我需要保留前10个条目,然后将其他条目分组到一个组中,总共有11个条目。然而,我需要在解决这个问题之前进行分类

提前谢谢

我想要一个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;
});
我想要一个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