在Javascript中对地址数组进行排序
我想对地址数组进行排序。在我的数组上使用在Javascript中对地址数组进行排序,javascript,arrays,sorting,Javascript,Arrays,Sorting,我想对地址数组进行排序。在我的数组上使用.sort()方法似乎很简单 但是。。。 试试看这里: .sort()方法按字母顺序进行完美排序(至少我认为是这样)。然而,我的地址有数字,数字后面还有更多的字母 那么,有没有一种方法可以对数组进行“正确”排序,可能是通过对排序方法进行原型化?您可以提供一个比较函数来比较array.prototype.sort() 将答案改编自: javascript中的数组排序方法采用一个可选参数,即比较函数。您可以根据需要定义此比较函数 arr.sort([compa
.sort()
方法似乎很简单
但是。。。
试试看这里:
.sort()
方法按字母顺序进行完美排序(至少我认为是这样)。然而,我的地址有数字,数字后面还有更多的字母
那么,有没有一种方法可以对数组进行“正确”排序,可能是通过对排序方法进行原型化?您可以提供一个比较函数来比较
array.prototype.sort()
将答案改编自:
javascript中的数组排序方法采用一个可选参数,即比较函数。您可以根据需要定义此比较函数 arr.sort([compareFunction]) 比较功能(可选)。指定定义排序顺序的函数。如果省略,数组将根据每个 字符的Unicode代码点值,根据字符串 每个元素的转换
有关更多详细信息,请参阅。这是
.sort()
函数非常常见的排序。您可以做的是将该方法传递给您自己的自定义比较函数,以便它使用该函数来确定排序顺序
addresses.sort(function (a, b) {
var val_a = Number.parseInt(a.replace('Nordmarksvej ', ''));
var val_b = Number.parseInt(b.replace('Nordmarksvej ', ''));
if (val_a === val_b) {
return 0;
}
return val_a > val_b ? 1 : -1
});
addresses.sort(function (a, b) {
var val_a = Number.parseInt(a.replace('Nordmarksvej ', ''));
var val_b = Number.parseInt(b.replace('Nordmarksvej ', ''));
if (val_a === val_b) {
return 0;
}
return val_a > val_b ? 1 : -1
});