当我尝试使用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"]
答案 0 :(得分:7)
你必须split
字符串并比较第一个元素。
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);
答案 1 :(得分:2)
您需要<?xml version="1.0" encoding="utf-8"?>
<com.android.android.LemonView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lemon_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
,转换为split
,然后进行比较
Number
答案 2 :(得分:2)
替换破折号并排序。您不需要拆分以获取阵列,然后访问第一个位置。
var array=["1050-3000","150-250","1-49","3001-9999","251-400","401-600","601-1049","50-149"];
array.sort((a, b) => a.replace('-', '') - b.replace('-', ''));
console.log(array);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
答案 3 :(得分:1)
排序功能为您提供正确的输出,因为它们是字符串,而不是数字。您必须编写自定义逻辑来处理此问题。
答案 4 :(得分:1)
你必须split
破折号,以便在使用array.sort();
函数时比较数组中的值
在这里,试试这个:
var 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);