[英]Sort values made up of an integer followed by % sign
我有一个带有值的md-table列-
Length,Class
Weight
Length,Width,Height
还有一列带有值的-
1%
5%
38%
当我尝试按升序和降序对这些列进行排序时,它没有给我正确的结果。
我正在使用arrayname.sort()进行升序,并使用arrayname.reverse()进行降序排序。
像这样-
desc-['Length,Width,Height','Length,Class','Weight'];
desc-['1%','38%',5%];
其他列正在正确排序。
Javascript排序基于unicode值,因此在某些情况下可能很挑剔。 特别是在处理整数时,它们并不是您期望的那样,即:
var c = ["38%", "1%", "5%"]
c.sort() // ["1%", "38%", "5%"] not what you wanted
使用整数而不是数字字符串的相同示例:
var c = [5, 1, 38];
c.sort() // [1, 38, 5] also not what you want
但是,您应该能够创建一个适用于大多数情况的简单排序函数。 与此类似:
var c = [5, 1, 38];
c.sort(function(a,b) {
return a-b;
})
// [1, 5, 38] this is what you would expect/want
由于unicode值,它仍无法与%一起正常工作:
var c = ["38%", "1%", "5%"];
c.sort(function(a,b) {
return a-b;
});
["38%", "1%", "5%"] // not what you want
但是您可以在执行排序之前先切成%。 看一下MDN Array.sort上的示例,它们涵盖了许多不同的场景。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.