Javascript 排序数字和文本
Javascript sorting numbers and text
如何使用 javascript 中的 .sort() 函数对其进行排序?我知道我可以在这里添加一个比较功能,但我不确定我将如何编程。
之前
1 024c
100 000c
143c
1 020c
10 000c
之后
143c
1 020c
1 024c
10 000c
100 000c
如果您的输入是一个数组,那么您可以使用比较器函数
(a,b) => a.replace(/[^\d.]/g, "") - b.replace(/[^\d.]/g, "")
这将从字符串中删除 c
和 space
以形成数字并进行比较。请参阅下面的代码。
var data = ["1 024c",
"100 000c",
"143c",
"1 020c",
"10 000c"]
var sorted = data.sort( (a,b) => a.replace(/[^\d.]/g, "") - b.replace(/[^\d.]/g, ""));
console.log(sorted);
您似乎想根据其中的数字对其进行排序,同时排除空格。
x.sort(
(eachObj, prevObj) =>
parseInt(eachObj.replace(" ","")) - parseInt(prevObj.replace(" ",""))
);
在 ES6 中
如何使用 javascript 中的 .sort() 函数对其进行排序?我知道我可以在这里添加一个比较功能,但我不确定我将如何编程。
之前
1 024c
100 000c
143c
1 020c
10 000c
之后
143c
1 020c
1 024c
10 000c
100 000c
如果您的输入是一个数组,那么您可以使用比较器函数
(a,b) => a.replace(/[^\d.]/g, "") - b.replace(/[^\d.]/g, "")
这将从字符串中删除 c
和 space
以形成数字并进行比较。请参阅下面的代码。
var data = ["1 024c",
"100 000c",
"143c",
"1 020c",
"10 000c"]
var sorted = data.sort( (a,b) => a.replace(/[^\d.]/g, "") - b.replace(/[^\d.]/g, ""));
console.log(sorted);
您似乎想根据其中的数字对其进行排序,同时排除空格。
x.sort(
(eachObj, prevObj) =>
parseInt(eachObj.replace(" ","")) - parseInt(prevObj.replace(" ",""))
);
在 ES6 中