【问题标题】:How to sort an array with numbers and text (TypeScript/JavaScript) [duplicate]如何对带有数字和文本的数组进行排序(TypeScript/JavaScript)[重复]
【发布时间】:2014-02-12 12:09:08
【问题描述】:

我对 TypeScript 和 Javascript 非常陌生。我正在尝试对包含数字和字符串的数组进行排序,例如(1、5、27.5、其他、移动)。我希望它先显示数字升序,然后按字母顺序显示文本。我试过了

myarr.sort (function (a, b) {
            return (a-b);
}

我收到一条错误消息,提示运算符“-”不能应用于类型字符串和字符串

【问题讨论】:

    标签: javascript arrays typescript


    【解决方案1】:

    如果你不需要处理IE9以下的浏览器,filter是个不错的选择。

    获取数字并对其进行排序:

    var nums = arr.filter(function (el) {
      return typeof el === 'number';
    }).sort();
    

    获取字符串并对其进行排序:

    var strings = arr.filter(function (el) {
      return typeof el === 'string';
    }).sort();
    

    连接两个数组:

    var result = nums.concat(strings);
    

    Demo.

    【讨论】:

    • 您可以使用 _.filter 在旧浏览器中获得相同的行为
    猜你喜欢
    • 2012-03-15
    • 2015-04-05
    • 2018-11-02
    • 2020-05-25
    • 2021-07-13
    • 1970-01-01
    • 2020-07-02
    • 2014-04-16
    • 2023-03-26
    相关资源
    最近更新 更多