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

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

Giả sử, chúng ta có mảng đối tượng sau được sắp xếp theo thuộc tính id của nó -

const unordered = [{
   id: 1,
   string: 'sometimes'
}, {
   id: 2,
   string: 'be'
}, {
   id: 3,
   string: 'can'
}, {
   id: 4,
   string: 'life'
}, {
   id: 5,
   string: 'tough'
}, {
   id: 6,
   string: 'very'
}, ];

Và một mảng chuỗi khác như thế này -

const ordered = ['Life', 'sometimes', 'can', 'be', 'very', 'tough'];

Chúng ta phải sắp xếp mảng đầu tiên để thuộc tính chuỗi của nó có cùng thứ tự chuỗi như trong mảng thứ hai. Do đó, hãy viết mã cho việc này.

Ví dụ

const unordered = [{
   id: 1,
   string: 'sometimes'
}, {
   id: 2,
   string: 'be'
}, {
   id: 3,
   string: 'can'
}, {
   id: 4,
   string: 'life'
}, {
   id: 5,
   string: 'tough'
}, {
   id: 6,
   string: 'very'
}, ];
const ordered = ['Life', 'sometimes', 'can', 'be', 'very', 'tough'];
const sorter = (a, b) => {
   return ordered.indexOf(a.string) - ordered.indexOf(b.string);
};
unordered.sort(sorter);
console.log(unordered);

Đầu ra

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

[
   { id: 4, string: 'life' },
   { id: 1, string: 'sometimes' },
   { id: 3, string: 'can' },
   { id: 2, string: 'be' },
   { id: 6, string: 'very' },
   { id: 5, string: 'tough' }
]