javascript - JavaScript 中的数组 sort() 给出了错误的答案

标签 javascript

当我尝试使用 sort() 进行排序时,数组中有间隔,然后它给了我错误的答案并且无法对其进行排序..有人知道如何对此进行排序吗? 这是我尝试过的

array=["1050-3000","150-250","1-49","3001-9999","251-400","401-600","601-1049","50-149"]

当我排序时:- array.sort(); 它给了我这个答案:-

["1-49","1050-3000","150-250","3001-9999","251-400","401-600","601-1049","50-149"]

但我期望的是:-

["1-49","50-149","150-250","251-400","401-600","601-1049","1050-3000","3001-9999"]

最佳答案

您必须拆分字符串并比较第一个元素。

let array = ["1050-3000", "150-250", "1-49", "3001-9999", "251-400", "401-600", "601-1049", "50-149"];

array.sort((a, b) => a.split("-")[0] - b.split("-")[0]);

console.log(array);

关于javascript - JavaScript 中的数组 sort() 给出了错误的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48930742/

相关文章:

javascript - 如何使用 jQuery 或 JavaScript 过滤掉超出范围的结果

javascript - 什么时候应该使用 .innerHTML 以及什么时候在 JavaScript 中使用 document.write

javascript - 使用 jQuery 解析 xml 命名空间。需要帮助!

javascript - 根据其他选择显示选择列表

javascript - 在 VS Code 中使用 Code Runner 运行 JavaScript 时出现“无法识别 "' 节点”错误

javascript - Windows Phone 浏览器上的orientationchange()

javascript - Request js 中的回调问题

javascript - 如何获取 Node.js 响应头和状态码?

javascript - AngularJS 中的注销页面

javascript - Internet Explorer 是否支持 e.preventDefault