Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中对地址数组进行排序_Javascript_Arrays_Sorting - Fatal编程技术网

在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
});