gpt4 book ai didi

javascript - JavaScript 中数组排序不正确

转载 作者:行者123 更新时间:2023-11-28 10:50:49 25 4
gpt4 key购买 nike

我有一个 Javascript 字符串数组,正在使用 compareFunction 对其进行排序。在大多数情况下,它的排序是正确的:

JS

array = ["E10N1", "E10N3", "E10N10", "E10N2", "E10N4", "E10N9", "E10N5", "E10N8", "E10N6", "E10N7"];

function sortStrings(a, b){
if(a < b){
return -1;
}
if(a > b){
return 1;
}
return 0;
}

array.sort(sortStrings);
for(var i = 0; i < array.length; i++){
$(".table_body").append("<div class='table_row'><p>" +array[i] +"</p></div>");
}

我遇到的问题是排序函数将 "E10N10" 项放在 "E10N1""E10N2" 项之间。所以它看起来像这样:

enter image description here

我知道字符串按字母顺序排序,但是 "E10N10" 字符串是否仍会晚于 "E10N9" 进行处理?如何修复它以使该特定字符串在排序后出现在数组的最后?

最佳答案

您可以修改自定义排序函数来处理此问题。例如,如果所有字符串都以排序时不关心的 4 个字符开头,则只需执行以下操作:

function sortStrings(a, b){

a = parseInt(a.substr(4));
b = parseInt(b.substr(4));

if(a < b){
return -1;
}
if(a > b){
return 1;
}
return 0;
}

关于javascript - JavaScript 中数组排序不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33877253/

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