首頁 >web前端 >js教程 >如何在不使用 ID 的情況下根據另一個陣列的順序對 JavaScript 陣列進行排序?

如何在不使用 ID 的情況下根據另一個陣列的順序對 JavaScript 陣列進行排序?

Susan Sarandon
Susan Sarandon原創
2024-12-12 11:46:13997瀏覽

How to Sort a JavaScript Array Based on Another Array's Order Without Using IDs?

根據另一個沒有 ID 的數組的順序對 JavaScript 數組進行排序

考慮以下場景:您有兩個數組,itemsArray 和 sortingArr。 itemsArray 包含名稱字母對,例如['Anne', 'a'],而sortingArr 指定所需的字母順序,例如['b', 'c', 'b', 'b', 'a', 'd '].

目標是重新排列itemsArray,使其順序盡可能與sortingArr的順序匹配,儘管缺乏唯一性

實現此目的的一種優雅而有效的方法是通過排序方法:

itemsArray.sort(function(a, b){  
  return sortingArr.indexOf(a) - sortingArr.indexOf(b);
});

在此代碼段中,排序方法使用自定義比較函數來比較itemsArray 中的每個元素。此函數傳回 sortingArr 中目前元素的索引與其他元素的索引之間的差異。此比較確保具有相同字母的元素被分組在一起並根據 sortingArr 進行排序。

輸出 itemsArray 會重新排列如下:

[
  ["Bob", "b"],
  ["Jason", "c"],
  ["Henry", "b"],
  ["Thomas", "b"]
  ["Anne", "a"],
  ["Andrew", "d"],
]

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn