gpt4 book ai didi

Javascript 二维数组排序 - 按数值

转载 作者:行者123 更新时间:2023-11-29 18:23:49 24 4
gpt4 key购买 nike

我看过另外几个与这个问题类似的帖子,但没有一个适用于我的场景并且不知道如何解决这个问题(例如 Sort a 2D array by the second value )

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

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

标签[“股票 A”、“股票 B”、“股票 C”、“股票 D”]

值["200", "1000", "900", "800"]

我想要一个二维数组

已排序[“股票 B,1000”,“股票 C,900”,“股票 D,800”,“股票 A,200”]

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

我上周在某个地方发现了另一种非常冗长的方式,但它是将诸如 100、1000 之类的值彼此相邻排序 - 我认为这归结为不是整数等,但没有这样的运气。周五一怒之下把代码删了。

我希望那里的好心人可以帮助新编码员。 O 这些值以字符串形式出现,因此需要将它们转换为整数。

数组中的条目数量不受限制,一旦我对这些条目进行了正确排序,我就需要保留前 10 个,然后将其他条目分组到一个总计为 11 个条目的组中。但是我需要先排序才能解决这个问题。

提前致谢。

最佳答案

I would like this in a 2D array

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;
});

关于Javascript 二维数组排序 - 按数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15612111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com