如果我有以下数组:
var num = [10% cats, 20% dogs, 30% fish, 40% turtles];
其中pct值始终与标签连接。有没有一种简单的方法可以从最大百分比到最小百分比?与其他类似问题不同,此处的格式始终为xx% label
在通常.sort()
中使用.sort(function(a,b) {return b-a;}):
并不起作用,因为这些不是数字?
num = [40% turtles, 30% fish, 20% dogs, 10% cats];
答案 0 :(得分:2)
您可以使用localeCompare
进行排序,指定numeric
选项。
var num = ['10% cats', '20% dogs', '40% turtles', '30% fish'];
num.sort((a,b) => b.localeCompare(a, undefined, {numeric:true}));
console.log(num);
答案 1 :(得分:1)
您可以使用sort函数将字符串转换为数值,然后再将它们与百分比进行排序。
var num = ['10% cats', '20% dogs', '30% fish', '40% turtles'];
num.sort( sortByPercentage );
console.log( num );
function sortByPercentage( a,b ) {
a = parseFloat(a);
b = parseFloat(b);
return b-a;
}