在javaScript中按字符串中的百分比对字符串数组进行排序的最佳方法是什么?

时间:2017-12-26 15:21:37

标签: javascript arrays sorting string-parsing

我有阵列:

["John (50%)", "Michael (10%)", "Amy (20%)", "Susan (100%)"]

我需要根据主要%到最小%对该数组进行排序。 如果是这样的话我可以使用lodash,但除此之外我只需要使用vanilla JS。

知道什么是最好的方法吗?

最终结果应为:

["Susan (100%)", "John (50%)", "Amy (20%)", "Michael (10%)"]

提前感谢您对此事的任何启示。

2 个答案:

答案 0 :(得分:3)

您可以获取数值并按值的增量降序排序。



var array = ["John (50%)", "Michael (10%)", "Amy (20%)", "Susan (100%)"];

array.sort(function (a, b) {
    function getValue(s) { return s.match(/\d+/) || 0; }
    return getValue(b) - getValue(a);
});

console.log(array);




答案 1 :(得分:0)

尝试以下方法:



var data = ["John (50%)", "Michael (10%)", "Amy (20%)", "Susan (100%)"];
var res = data.sort(function(a, b){
  return b.match(/\d+/) -  a.match(/\d+/);
});
console.log(res);