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

Sắp xếp một chuỗi theo thứ tự giây trong JavaScript

Vấn đề

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

Hàm của chúng ta nên sắp xếp str1 theo thứ tự của các ký tự khi chúng xuất hiện trong str2

Ví dụ:nếu đầu vào của hàm là -

Đầu vào

const str1 = 'coding';
const str2 = 'gncabdi';

Đầu ra

const output = 'gncdio';

Giải thích đầu ra

Các ký tự xuất hiện đầu tiên trong str2 được đặt đầu tiên, tiếp theo là các ký tự xuất hiện sau và cuối cùng là các ký tự không có trong str2.

Ví dụ

Sau đây là mã -

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));

Đầu ra

gncdio