簡體   English   中英

打字稿數組排序與隨機排序順序

[英]typescript array sorting with random sort order

我想根據排序順序對數組進行排序。

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

我有一個排序順序

  • 狗= 1
  • 蘋果= 3
  • 人= 2

所以我想像狗,人,蘋果一樣對這個數組進行排序。

如何在打字稿中做到這一點。

如果您要在地圖(對象)中下訂單,則可以執行此操作。

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

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

您可以在此處看到一個有效的游樂場示例。

我想您使用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;
});

您已經增強了您的問題,然后該答案不再適用(和注釋中提到的固定代碼)。

這也將起作用。 來源

randomizeArray(a, b, c, d) { // array, placeholder, placeholder, placeholder
    c = a.length; while (c) b = Math.random() * c-- | 0, d = a[c], a[c] = a[b], a[b] = d
}

您可以這樣調用此函數,其中data是一個數組[]

this.randomizeArray(data, null, null, null);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM