【问题标题】:Sort array by a specific key value in Javascript [duplicate]按Javascript中的特定键值对数组进行排序[重复]
【发布时间】:2020-11-07 19:01:30
【问题描述】:

我有一个没有特定顺序或排序的重复字符串数组。

const array = ["Train", "Car", "Car", "Train", "Bicycle", "Car", "Bicycle", "Car", "Train"]

我想按特定顺序对数组进行排序,特别是Train, Bicycle, Car

所以应该排序。

["Train", "Train", "Train", "Bicycle", "Bicycle", "Car", "Car", "Car", "Car"]

此外,如果数组不包含其中一个字符串,它仍应保持相同的顺序并跳过该字符串。

我尝试了很多不同的排序方法,但都没有成功。

【问题讨论】:

  • Array.sort(comparator)?

标签: javascript


【解决方案1】:

您可以按照想要的顺序获取一个对象并按对象的值排序。

const
    array = ["Train", "Car", "Car", "Train", "Bicycle", "Car", "Bicycle", "Car", "Train"],
    order = { Train: 1, Bicycle: 2, Car: 3 };

array.sort((a, b) => order[a] - order[b]);

console.log(...array);

【讨论】:

    【解决方案2】:

    简单的订单功能可以完成您的工作

    const array = [
      'Train',
      'Car',
      'Car',
      'Train',
      'Bicycle',
      'Car',
      'Bicycle',
      'Car',
      'Train',
    ];
    const order = (str) => {
      if (str === 'Train') return 1;
      if (str === 'Bicycle') return 2;
      if (str === 'Car') return 3;
      return 0;
    };
    
    const ret = array.sort((x, y) => order(x) - order(y));
    console.log(ret);

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 2019-01-12
      • 2012-10-04
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多