根據輔助值重新排列數組
在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中文網其他相關文章!