首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对由整数后跟%符号组成的值进行排序

对由整数后跟%符号组成的值进行排序
EN

Stack Overflow用户
提问于 2016-09-02 01:00:09
回答 1查看 108关注 0票数 0

我有一个包含值的md-table列-

代码语言:javascript
运行
复制
Length,Class
Weight
Length,Width,Height

还有一列带有值-

代码语言:javascript
运行
复制
1%
5%
38%

当我尝试以升序和降序对这些列进行排序时,它不会给出正确的结果。

我使用arrayname.sort()进行升序排序,使用arrayname.reverse()进行降序排序。

它是这样的-

desc -‘长,宽,高’,‘长,类’,‘重’;

desc - '1%','38%',5%;

其他列排序正确。

EN

回答 1

Stack Overflow用户

发布于 2016-09-02 03:36:16

Javascript排序是基于Unicode值的,因此在某些情况下可能会很繁琐。特别是在处理整数时,它们并不完全像你所期望的那样,即:

代码语言:javascript
运行
复制
var c = ["38%", "1%", "5%"]
c.sort() // ["1%", "38%", "5%"] not what you wanted

使用整数而不是数字字符串的相同示例:

代码语言:javascript
运行
复制
var c = [5, 1, 38];
c.sort() // [1, 38, 5] also not what you want

但是,您应该能够创建一个简单的排序函数,该函数适用于大多数情况。大致是这样的:

代码语言:javascript
运行
复制
var c = [5, 1, 38];
c.sort(function(a,b) {
    return a-b;
})
// [1, 5, 38] this is what you would expect/want

由于Unicode值的原因,它仍然无法与%一起正常工作:

代码语言:javascript
运行
复制
var c = ["38%", "1%", "5%"];
c.sort(function(a,b) {
   return a-b;
});
["38%", "1%", "5%"] // not what you want

但在执行排序之前,您可以只对这%进行切片。看看MDN Array.sort上的例子,它们涵盖了许多不同的场景。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39277142

复制
相关文章

相似问题

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