首頁 > web前端 > js教程 > 如何在 JavaScript 中根據另一個陣列的順序對一個陣列進行排序?

如何在 JavaScript 中根據另一個陣列的順序對一個陣列進行排序?

Patricia Arquette
發布: 2024-12-23 01:18:11
原創
494 人瀏覽過

How Can I Sort One Array Based on the Order of Another Array in JavaScript?

根據輔助值重新排列數組

在JavaScript 中,可能存在需要根據指定的順序對數組進行排序的情況另一個數組。在處理元素順序至關重要的資料結構時,這特別有用。

考慮以下範例:

itemsArray = [
    ['Anne', 'a'],
    ['Bob', 'b'],
    ['Henry', 'b'],
    ['Andrew', 'd'],
    ['Jason', 'c'],
    ['Thomas', 'b']
];
sortingArr = [ 'b', 'c', 'b', 'b', 'a', 'd' ];
登入後複製

在這種情況下,目標是將 itemsArray 重新排列為符合 sortingArr 的順序。不幸的是,沒有 ID 來追蹤元素,因此優先順序是盡可能匹配順序。

解決方案:

要實現這一點,您可以將 JavaScript 的內建 sort() 方法與自訂比較函數結合使用。比較函數根據 itemsArray 中的兩個元素在 sortingArr 中的對應值進行比較。

itemsArray.sort(function(a, b){  
  return sortingArr.indexOf(a) - sortingArr.indexOf(b);
});
登入後複製

此表達式本質上是根據 sortingArr 中元素的對應索引對 itemsArray 進行排序。因此,重新排列的陣列將類似於以下內容:

itemsArray = [
    ['Bob', 'b'],
    ['Jason', 'c'],
    ['Henry', 'b'],
    ['Thomas', 'b']
    ['Anne', 'a'],
    ['Andrew', 'd'],
];
登入後複製

此解決方案優先考慮 sortingArr 指定的順序,並按所需的排列輸出 itemsArray。

以上是如何在 JavaScript 中根據另一個陣列的順序對一個陣列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板