Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Sắp xếp chuỗi theo thứ tự của chuỗi thứ hai trong JavaScript

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