我在JavaScript中有一个包含以下内容的数组:
我将如何对此数组进行排序,使其不显示如下:
但是:
任何帮助都会很棒。
答案 0 :(得分:9)
你需要从字符串中提取数值并根据这些值进行排序,就像vlood所说的那样。例如,尝试以下代码:
function mySort(arr)
{
var regex = /Value\s([0-9]+)/;
function map(str) {
return Number(regex.exec(str)[1]);
}
return arr
.sort(
function (a,b) {
var av = map(a), bv = map(b);
return av < bv ? -1 : av > bv ? 1 : 0;
})
}
mySort(["Value 1", "Value 10", "Value 11", "Value 5"]);
答案 1 :(得分:1)
如果您热衷于自己编写,可以使用正则表达式解析项目并比较第二部分。那些将匹配类似
的东西“值\ S [1-9] [0-9] *”
答案 2 :(得分:0)
你需要自然分类。我不认为js中有内置的实现,但你可以使用一些库。例如:phpjs - natcasesort