基於 JavaScript 中的條件重新排序陣列?


假設我們有一個物件陣列,其中包含紙牌遊戲中一些玩家的分數 −

const scorecard = [{
   name: "Zahir",
   score: 23
}, {
      name: "Kabir",
      score: 13
}, {
      name: "Kunal",
      score: 29
}, {
      name: "Arnav",
      score: 42
}, {
      name: "Harman",
      score: 19
}, {
      name: "Rohit",
      score: 41
}, {
      name: "Rajan",
      score: 34
}];

我們還有一個變數 selfName,其中包含特定玩家的名字 −

const selfName = 'Arnav';

我們需要編寫一個函式來按字母順序對記分卡陣列進行排序,並確保與 selfName 同名的物件出現在頂部(索引為 0)。

因此,讓我們為這個問題編寫程式碼 −

示例

const scorecard = [{
   name: "Zahir",
   score: 23
}, {
      name: "Kabir",
      score: 13
}, {
      name: "Kunal",
      score: 29
}, {
      name: "Arnav",
      score: 42
}, {
      name: "Harman",
      score: 19
}, {
      name: "Rohit",
      score: 41
}, {
      name: "Rajan",
      score: 34
}];
const selfName = 'Arnav';
const sorter = (a, b) => {
   if(a.name === selfName){
      return -1;
   };
   if(b.name === selfName){
      return 1;
   };
   return a.name < b.name ? -1 : 1;
};
scorecard.sort(sorter);
console.log(scorecard);

輸出

控制檯中的輸出為 −

[
   { name: 'Arnav', score: 42 },
   { name: 'Harman', score: 19 },
   { name: 'Kabir', score: 13 },
   { name: 'Kunal', score: 29 },
   { name: 'Rajan', score: 34 },
   { name: 'Rohit', score: 41 },
   { name: 'Zahir', score: 23 }
]

更新於:26-Aug-2020

2K+ 檢視次數

開啟你的 職業生涯

完成課程即可獲得認證

開始使用
廣告
© . All rights reserved.