Computer >> Máy Tính >  >> Lập trình >> Javascript

Sắp xếp mảng dựa trên JavaScript mảng khác

Giả sử, chúng ta có hai mảng như thế này -

const input = ['S-1','S-2','S-3','S-4','S-5','S-6','S-7','S-8'];
const sortingArray = ["S-1", "S-5", "S-2", "S-6", "S-3", "S-7", "S-4", "S-8"];

Chúng tôi được yêu cầu viết một hàm JavaScript có hai mảng như vậy làm đối số thứ nhất và thứ hai tương ứng.

Hàm sẽ sắp xếp các phần tử của mảng đầu tiên theo vị trí của chúng trong mảng thứ hai.

Mã cho điều này sẽ là -

Ví dụ

const input = ['S-1','S-2','S-3','S-4','S-5','S-6','S-7','S-8'];
const sortingArray = ["S-1", "S-5", "S-2", "S-6", "S-3", "S-7", "S-4", "S-8"];
const sortByReference = (arr1 = [], arr2 = []) => {
   const sorter = (a, b) => {
      const firstIndex = arr2.indexOf(a);
      const secondIndex = arr2.indexOf(b);
      return firstIndex - secondIndex;
   };
   arr1.sort(sorter);
};
sortByReference(input, sortingArray); console.log(input);

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[
'S-1',
'S-5',
'S-2',
'S-6',
'S-3',
'S-7',
'S-4',
'S-8'
]