Javascript按键排序数组Google Chrome

Javascript按键排序数组Google Chrome,javascript,arrays,google-chrome,sorting,Javascript,Arrays,Google Chrome,Sorting,我有一个数组,需要按键降序排序。 在Firefox中一切都很好,但在Chrome中它是按原来的顺序显示的 [["0", 0], ["1", 0.9], ["2", 597.5344192965547], ["3", 991.0326954186761], ["4", 1257.2580315846578], ["5", 1293.5250901880618], ["6", 2197.1091224116512], ["7", 2225.0422585266947], ["8", 3964.130

我有一个数组,需要按键降序排序。 在Firefox中一切都很好,但在Chrome中它是按原来的顺序显示的

[["0", 0], ["1", 0.9], ["2", 597.5344192965547], ["3", 991.0326954186761], ["4", 1257.2580315846578], ["5", 1293.5250901880618], ["6", 2197.1091224116512], ["7", 2225.0422585266947], ["8", 3964.1307816747044], ["9", 6914.072436146399]]
这是我正在使用的代码

sortable.sort(function(a,b){return b-a})
因此,在Firefox中,它返回正确的结果

[["9", 6914.072436146399], ["8", 3964.1307816747044], ["7", 2225.0422585266947], ["6", 2197.1091224116512], ["5", 1293.5250901880618], ["4", 1257.2580315846578], ["3", 991.0326954186761], ["2", 597.5344192965547], ["1", 0.9], ["0", 0]]

但是在google Chrome中,它只显示相同的

数组。假设
sortable
引用外部数组,则排序函数最终会在数组实例上使用
-
。例如,在调用
sort
时,您的排序函数将使用数组
[“0”,0]
[“1”,0.9]
调用。因此,您可以在该函数中有效地执行此操作:

return ["0", 0] - ["1", 0.9];
在这两个操作数上使用
-
将导致JavaScript引擎试图将这些操作数转换为数字,几乎肯定会导致
NaN
NaN-NaN
NaN
,这不是排序比较器回调应该返回的内容之一

我怀疑您希望按照从属数组中的第一个条目进行排序,如下所示:

sortable.sort(function(a,b){return b[0]-a[0]})
(注意每个数组上的
[0]
)将获取每个从属数组中第一个条目的字符串,并将它们传递给
-
,这将隐式地将它们强制为数字。如果需要,您还可以将其显式化并强制使用特定的基数:

sortable.sort(function(a,b){return parseInt(b[0], 10) - parseInt(a[0], 10)})

您有一个数组。假设
sortable
引用外部数组,则排序函数最终会在数组实例上使用
-
。例如,在调用
sort
时,您的排序函数将使用数组
[“0”,0]
[“1”,0.9]
调用。因此,您可以在该函数中有效地执行此操作:

return ["0", 0] - ["1", 0.9];
在这两个操作数上使用
-
将导致JavaScript引擎试图将这些操作数转换为数字,几乎肯定会导致
NaN
NaN-NaN
NaN
,这不是排序比较器回调应该返回的内容之一

我怀疑您希望按照从属数组中的第一个条目进行排序,如下所示:

sortable.sort(function(a,b){return b[0]-a[0]})
(注意每个数组上的
[0]
)将获取每个从属数组中第一个条目的字符串,并将它们传递给
-
,这将隐式地将它们强制为数字。如果需要,您还可以将其显式化并强制使用特定的基数:

sortable.sort(function(a,b){return parseInt(b[0], 10) - parseInt(a[0], 10)})

您有一个数组。你期望(例如)
[“0”,0]-[“1”,0.9]
是什么意思?这就是你的
b-a
在某一点上的结论,假设
sortable
指的是你的外部数组。你有一个数组。你期望(例如)
[“0”,0]-[“1”,0.9]
是什么意思?假设
sortable
引用了外部数组,那么这就是你的
b-a
在某种程度上的结论。你是不是缺少了
parseInt
或者其他什么@第四:可能需要,也可能不需要<代码>-将强制参数为数字。但我要补充一点。哦,是的,你说得对
TopPrimitive
将处理此问题+1您是不是缺少了
parseInt
之类的东西?;)@第四:可能需要,也可能不需要<代码>-将强制参数为数字。但我要补充一点。哦,是的,你说得对
TopPrimitive
将处理此问题+1.