javascript - 使用javascript对数组进行排序由字母和数字组成

标签 javascript node.js

$.ajax({
    url: '/seatlt',
    type: 'POST',
    dataType: 'JSON',
    data: data,
    async: true,
    crossDomain: true,
    success: function(res) {
        $.each(res, function(i, v) {
            $.each(v, function(j, w) {
                var ggg = w.name;                                    
                vvv.push(ggg);
            })
        })
    }
})

在 console.log(vvv) 中,我得到的输出为:

["22"、"A"、"23"、"B"、"24"、"C"、"25"、"D"、"26"、"E"、"27"、"F ”、“28”、“29”、“30”、“31”、“10”、“32”、“11”、“33”、“12”、“34”、“13”、“35”、 “14”、“15”、“16”、“17”、“18”、“19”、“1”、“2”、“3”、“4”、“5”、“6”、“7” ”、“8”、“9”、“20”、“21”]。

但我希望输出为:

["A"、"B"、"C"、"D"、"E"、"F"、"1"、"2"、"3"、"4"、"5"、"6 ”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”、“17”、“18”、 “19”、“20”、“21”、“22”、“23”、“24”、“25”、“26”、“27”、“28”、“29”、“30”、“31” ”、“32”、“33”、“34”、“35”]。

最佳答案

我是盲写的,但这应该可以解决问题。

res.sort(function(a, b) {
  var AisNumber = a % 1 === 0;
  var BisNumber = b % 1 === 0;
  if (AisNumber && BisNumber) { 
    return Number(a) - Number(b);
  } else if (AisNumber && !BisNumber) {
    return 1;
  } else if (!AisNumber && BisNumber) {
    return -1;
  } else {
    if (a < b) {
      return -1;
    } else if (a > b) {
      return 1;
    } else {
      return 0;
    }
  }
});

关于javascript - 使用javascript对数组进行排序由字母和数字组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48415968/

相关文章:

javascript - 消除 knockout 中 Bootstrap 开关状态变化的歧义

javascript - HTML5 Canvas 幻灯片放映问题

javascript - 将 csv 数据放入 highcharts

javascript - 使用 Express 代理,如何更改相对 url?

javascript - 如何使用 javascript 在新选项卡中打开 chrome 设置

javascript - 如何加载/构建 Chrome 应用程序/扩展程序并以编程方式运行

node.js - Mongoose 总是返回一个空数组 NodeJS

javascript - V8 的大对象空间驻留在哪里?

node.js - 如何汇总总计百分比

javascript - 在 Javascript/Node 中将大数转换为字符串