javascript - 在 jQuery 中使用整数字符串类型对数组进行排序

标签 javascript jquery

我有一个字符串类型的整数数组。

var a = ['200','1','40','0','3'];

输出

>>> var a = ['200','1','40','0','3'];
console.log(a.sort());
["0", "1", "200", "3", "40"]

我还会有一个混合类型数组。例如

var c = ['200','1','40','apple','orange'];

输出

>>> var c = ['200','1','40','apple','orange']; console.log(c.sort());
["1", "200", "40", "apple", "orange"]

============================================= ===
字符串类型的整数未排序。

最佳答案

正如其他人所说,您可以编写自己的比较函数:

var arr = ["200", "1", "40", "cat", "apple"]
arr.sort(function(a,b) {
  if (isNaN(a) || isNaN(b)) {
    return a > b ? 1 : -1;
  }
  return a - b;
});

// ["1", "40", "200", "apple", "cat"]

关于javascript - 在 jQuery 中使用整数字符串类型对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18554921/

相关文章:

javascript - 使用 javascript 在输入字段上只接受 20 的倍数(例如 40、60、80)?

javascript - 使用高阶 reducers 去除重复的 redux Action 逻辑

javascript - 在jQuery中查找数组长度得到错误的结果

javascript - 将对象数组映射到 CoffeeScript 中的键/值对

php - 使用Ajax删除数据库行只会删除第一行,不会删除选中的行

Javascript 幻灯片滑动

javascript - Bootstrap 导航栏汉堡菜单无法打开

JavaScript 匹配域和部分

javascript - 选择不是第一个 child 且不包含某些内容的所有 `li`

javascript - jQuery 更改输入文本值不起作用