JavaScript 中的相關排序
假設我們有兩個陣列,比如 arr1 和 arr2。arr2 中的元素是不同的,並且 arr2 中的所有元素也在 arr1 中。
我們需要編寫一個 JavaScript 函式,該函式接收兩個這樣的陣列,並按照 arr2 中的順序對 arr1 的元素進行排序。沒有出現在 arr2 中的元素應按升序排列並放置在 arr1 的末尾。
例如,如果這兩個輸入陣列為 -
const arr1 = [2,3,1,3,2,4,6,7,9,2,19]; const arr2 = [2,1,4,3,9,6];
那麼輸出應該是 -
const output = [2,2,2,1,4,3,3,9,6,7,19];
示例
const arr1 = [2,3,1,3,2,4,6,7,9,2,19];
const arr2 = [2,1,4,3,9,6];
const relativeSortArray = (arr1, arr2) => {
const map = new Map();
const len = arr2.length;
arr2.forEach((a, i) => {
map.set(a, i); });
return arr1.sort((a, b) => {
a = map.has(a) ? map.get(a) : len + a;
b = map.has(b) ? map.get(b) : len + b; return a - b;
});
};
console.log(relativeSortArray(arr1, arr2));輸出
控制檯中的輸出為 -
[ 2, 2, 2, 1, 4, 3, 3, 9, 6, 7, 19 ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP