首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于十进制子串的字母数字元素的解析和排序

基于十进制子串的字母数字元素的解析和排序
EN

Stack Overflow用户
提问于 2014-02-19 03:33:50
回答 4查看 120关注 0票数 0

这是我的数组:

代码语言:javascript
运行
复制
var arr=["Iteration 3.1","Iteration 3.2","Iteration 2.2","Iteration 2.3","Iteration 2.1"];

预期输出为:

代码语言:javascript
运行
复制
Iteration 3.2
Iteration 3.1
Iteration 2.3
Iteration 2.2
Iteration 2.1

我尝试过:

代码语言:javascript
运行
复制
arr.sort(function(a,b){
a=a.match(/[^a-zA-Z]/);
b=b.match(/[^a-zA-Z]/);
var an=parseFloat(a,10);
var bn=parseFloat(b,10);
return an<bn?1:(an>bn?-1:(a<b?-1:(a>b?1:0)));
});

我现在得到的是:

代码语言:javascript
运行
复制
Iteration 3.1
Iteration 3.2
Iteration 2.2
Iteration 2.3
Iteration 2.1

jsfiddle link

EN

Stack Overflow用户

发布于 2014-02-19 05:31:54

您可以匹配每一项的整数和小数部分-

代码语言:javascript
运行
复制
var arr=["Iteration 3.1","Iteration 3.2","Iteration 2.2",
"Iteration 2.3","Iteration 2.1"];

arr.sort(function(a, b){
    var a1= a.match(/\d+(\.\d+)?/),
    b1= b.match(/\d+(\.\d+)?/); 
    return b1[0]-a1[0];
});


/*  returned value: (Array)
Iteration 3.2, Iteration 3.1, Iteration 2.3, Iteration 2.2, Iteration 2.1
*/
票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21863597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档