如何在jquery中使用字符串数组对数字进行排序
["8h 40m", "5h 0m", "8h 55m", "5h 10m", "13h 0m", "3h 50m", "23h 30m", "3h 0m", "10h 55m", "9h 30m", "1h 25m", "1h 25m", "1h 25m", "1h 20m", "13h 30m", "5h 55m", "13h 10m", "10h 25m", "14h 50m", "1h 30m", "1h 40m", "1h 40m", "1h 40m", "9h 10m", "13h 15m"]
请建议。
var _sortDurationArray = _durationArray.sort(function (a, b) {
var contentA =parseInt(a);
var contentB =parseInt(b);
return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
})
输出:
["1h 40m", "1h 25m", "1h 40m", "1h 20m", "1h 40m", "1h 25m", "1h 25m", "1h 30m", "3h 0m", "3h 50m", "5h 10m", "5h 0m", "5h 55m", "8h 40m", "8h 55m", "9h 30m", "9h 10m", "10h 25m", "10h 55m", "13h 30m", "13h 10m", "13h 0m", "13h 15m", "14h 50m", "23h 30m"]
所需的输出是。
["1h 20m", "1h 25m", "1h 25m", "1h 25m", "1h 30m", "1h 40m", "1h 40m","3h 0m", "3h 50m", "5h 0m", "5h 10m", "5h 55m", "8h 40m", "8h 55m", "9h 10m", "9h 30m", "10h 55m", "10h 25m", "13h 0m", "13h 10m", "13h 15m", "13h 30m", "14h 50m", "23h 30m"]
基本上,您需要通过如下转换时间值来比较分钟值,然后需要比较它们:
var _durationArray = ["8h 40m", "5h 0m", "8h 55m", "5h 10m", "13h 0m", "3h 50m", "23h 30m", "3h 0m", "10h 55m", "9h 30m", "1h 25m", "1h 25m", "1h 25m", "1h 20m", "13h 30m", "5h 55m", "13h 10m", "10h 25m", "14h 50m", "1h 30m", "1h 40m", "1h 40m", "1h 40m", "9h 10m", "13h 15m"]
var _sortDurationArray = _durationArray.sort(function(a, b) {
var contentA = getMin(a);
var contentB = getMin(b);
return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
});
console.log(_sortDurationArray);
function getMin(time) {
var timearr = time.split(" ");
var hr = timearr[0].replace("h", "");
var min = timearr[1].replace("m", "");
var totMin = parseInt(hr) * 60 + parseInt(min);
return totMin;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句