网站搜索

javascript - typescript 数组排序与随机排序顺序


我想根据一个排序顺序对数组进行排序。

public array1: Array<string> = [];
array.push(some string values); //E.g dog,apple,man

我有一个排序方式,比如

  • 狗=1
  • 苹果=3
  • 男人=2

所以我想像 dog、man、apple 那样排序这个数组。

如何在 TypeScript 中做到这一点。

答案#1

如果你把订单放在一个映射(对象)里,你就可以这样做。

let list = ['dog', 'cat','apple'];
let sortOrder = {
    dog: 1,
    cat: 3,
    apple: 2
}

list.sort((a, b) => sortOrder[a] - sortOrder[b]);

你可以在这里看到一个可运行的示例 Playground。

答案#2

我猜你使用的是 TypeScript(正如你问题中标注的)。

let data = [
   {value:"dog", key:1},
   {value:"apple", key:3},
   {value:"man", key:2},
];

data.sort((d1, d2) => {
  if (d1.key > d2.key) return 1;
  if (d1.key < d2.key) return -1;
  return 0;
});

你已经完善了你的问题,那么这个答案就不再相关了(并且如评论中所述修正了代码)。