Javascript 如何根据包含的数字对字符串数组进行排序?
我有一个包含如下字符串的数组:Javascript 如何根据包含的数字对字符串数组进行排序?,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一个包含如下字符串的数组: "1115.49|Onroll|Paiporta|/v2/networks/onroll-paiporta" "1767.92|Göteborg|Göteborg|/v2/networks/goeteborg" "190.4|ARbike|Arezzo|/v2/networks/arbike" "201.36|JesinBici|Jesi|/v2/networks/jesinbici" "403.59|Venezia|Venezia|/v2/networks/ve
"1115.49|Onroll|Paiporta|/v2/networks/onroll-paiporta"
"1767.92|Göteborg|Göteborg|/v2/networks/goeteborg"
"190.4|ARbike|Arezzo|/v2/networks/arbike"
"201.36|JesinBici|Jesi|/v2/networks/jesinbici"
"403.59|Venezia|Venezia|/v2/networks/venezia"
"395.07|Mantova|Mantova|/v2/networks/mantova"
yourArray.sort(function (a, b) {
var aNum = +a.substring(0, a.indexOf('|'));
var bNum = +b.substring(0, b.indexOf('|'));
if (aNum > bNum) return 1;
if (aNum < bNum) return -1;
return 0;
});
第一个值是距离,我想根据该距离对数组进行排序,我该怎么做
我尝试过的一切都不起作用,我希望1000在200之后,而不是之前
谢谢 您可以这样做:
"1115.49|Onroll|Paiporta|/v2/networks/onroll-paiporta"
"1767.92|Göteborg|Göteborg|/v2/networks/goeteborg"
"190.4|ARbike|Arezzo|/v2/networks/arbike"
"201.36|JesinBici|Jesi|/v2/networks/jesinbici"
"403.59|Venezia|Venezia|/v2/networks/venezia"
"395.07|Mantova|Mantova|/v2/networks/mantova"
yourArray.sort(function (a, b) {
var aNum = +a.substring(0, a.indexOf('|'));
var bNum = +b.substring(0, b.indexOf('|'));
if (aNum > bNum) return 1;
if (aNum < bNum) return -1;
return 0;
});
yourray.sort(函数(a,b){
var aNum=+a.substring(0,a.indexOf(“|”);
var bNum=+b.substring(0,b.indexOf(“|”);
如果(aNum>bNum)返回1;
if(aNum
它将按所需的升序返回数组。如果向array.prototype添加sortBy函数,则可以更轻松地执行类似操作
Array.prototype.sortBy = function(f) {
this.sort(function(a, b) {
a = f(a); b = f(b);
if(a > b) return 1;
if(a < b) return -1;
return 0;
});
}
return+a.substring(0,a.indexOf(“|”)-+b.substring(0,a.indexOf(“|”)
应该足够了。谢谢!但我不断得到:Uncaught TypeError:undefined不是一个函数我错在哪里?@Andref用数组替换你的数组。创建数组时遇到问题,现在它可以工作了,多亏了大家!