javascript - 如何对包含空字符串、NaN、数字和无穷大的数组进行排序

标签 javascript arrays sorting

我正在尝试对包含空字符串、数字、“infinity”、“-infinity”和“NaN”的数组进行排序。我收到了所有字符串形式的值,因此当涉及到空字符串、inf 和 nan 时,sort 无法按预期工作。有没有一种方法可以按升序和降序自定义我的排序功能?

最佳答案

您可以使用一个对象来排序并将给定的项目移动到想要的位置。

var array = ["", 2, 3, 0, "inf", "-inf", "Nan", -1, -100000];

array.sort(function (a, b) {
    var order = { "": -4, "-inf": -3, "Nan": -2, "inf": -1 };
    return (order[a] || 0) - (order[b] || 0) || a - b;
});

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何对包含空字符串、NaN、数字和无穷大的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40429654/

相关文章:

arrays - Perl:从子程序返回哈希

javascript - jQuery AJAX 异步 : False not behaving as expected

javascript - 为什么 Angular UI Bootstrap 使用提供程序来处理模式和工具提示中的逻辑,而不是其他组件中的逻辑?

javascript - 根据 'h2' 标记对子元素进行排序

javascript - setInterval 的函数结果错误

ios - 使用 Swift 在 UITableview 中对 Backendless 数据进行分组和排序

jquery - 如何以编程方式构造对象数组

mysql - 将信息数组插入 MySQL 数据库时出现问题

python - 理解 __call__ 和 list.sort(key)

mongodb - 在一个 MongoDB 聚合查询中进行排序和分组