Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào hai chuỗi str1 và str2 làm đối số thứ nhất và thứ hai. Hàm phải sắp xếp str1 theo thứ tự các ký tự khi chúng xuất hiện trong str2.
Ví dụ, nếu đầu vào là:
Đầu vào
const str1 = 'coding'; const str2 = 'gncabdi';
Đầu ra
const output = 'gncdio';
Giải thích
Các ký tự xuất hiện trước trong str2 được đặt trước, theo sau là các ký tự xuất hiện sau, và cuối cùng là các chữ cái không có trong str2.
Ví dụ
Dưới đây là mã thực hiện:
const str1 = 'coding';
const str2 = 'gncabdi';
const sortByOrder = (str1 = '', str2 = '') => {
str2 = str2.split('');
const arr1 = str1
.split('')
.filter(el => str2.includes(el))
.sort((a, b) => str2.indexOf(a) - str2.indexOf(b));
const arr2 = str1
.split('')
.filter(el => !str2.includes(el));
return arr1.join('') + arr2.join('');
};
console.log(sortByOrder(str1, str2));
Kết quả
gncdio