gpt4 book ai didi

javascript - Javascript 中的数组排序.. 大写,大写,小,小顺序

转载 作者:行者123 更新时间:2023-12-02 14:36:09 28 4
gpt4 key购买 nike

var temp=["dy34","fd","FD","av","AV","12esu",1,"DY34",1011,123,101];

当我对数组进行排序时,我得到的结果是:

result = [1,101,123,1011,"12esu","AV","av","dy34","DY34","FD","fd"]

但我需要这样的结果:

result = [1,101,123,1011,"12esu","AV","av","DY34","dy34","FD","fd"]

最佳答案

看来你想

  1. 以数字形式比较数组项
  2. 如果它们相等,则以不区分大小写的字符串形式进行比较
  3. 如果它们也相等,则比较原始形式。

/* isNumeric function taken from http://stackoverflow.com/a/1830844/1529630 */
var isNumeric = n => !isNaN(parseFloat(n)) && isFinite(n),
numberForm = val => isNumeric(val) ? Number(val) : Infinity,
iStringForm = val => String(val).toUpperCase();

var temp = ["dy34","fd","FD","av","AV","12esu",1,"DY34",1011,123,101];
for (var i = 0; i < temp.length; ++i)
temp[i] = [numberForm(temp[i]), iStringForm(temp[i]), temp[i]];
temp.sort(function(a, b) {
for (var i = 0; i < 3; ++i) {
if (a[i] < b[i]) return -1;
if (a[i] > b[i]) return +1;
}
return 0;
});
for (var i = 0; i < temp.length; ++i)
temp[i] = temp[i][2];

console.log(temp);

关于javascript - Javascript 中的数组排序.. 大写,大写,小,小顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37436738/

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