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

Sắp xếp các bảng chữ cái trong một chuỗi trong JavaScript

Giả sử, chúng ta có một chuỗi từ được phân tách bằng dấu phẩy như thế này -

const str = 'JAY, ROB';

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một chuỗi như vậy. Hàm có thể tạo một từ mới từ các từ trong chuỗi mà bảng chữ cái đứng trước luôn lớn hơn bảng chữ cái tiếp theo (ví dụ:A lớn hơn B)

Ví dụ:trong chuỗi trên, chúng tôi muốn so sánh chữ cái đầu tiên của JAY với chữ cái đầu tiên của ROB.

Vì J đứng đầu tiên khi so sánh với R, bảng chữ cái đầu tiên của từ mới sẽ là J. So sánh thứ hai, vì A đứng trước R nó trở thành bảng chữ cái thứ hai, bảng chữ cái thứ ba tương tự trở thành R.

Do đó, từ cuối cùng sẽ là 'JAROBY',

Lưu ý rằng, đối với ví dụ này, chúng tôi lấy một chuỗi chỉ có hai từ, nhưng chúng tôi bắt buộc phải viết một giải pháp có thể hoạt động với nhiều hơn hai từ.

Ví dụ

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

const str = `JAY,ROB,APPLE,AAKO`;
const specialSort = (str = '') => {
   let len = str.replace(/,/g, "").length;
   const sorter = (str, b) => {
      if(str === "" || str === null) return 1;
      if(b === "" || b === null) return −1;
      if(str === b) return 0;
      return str < b ? −1 : 1;
   };
   let res = "";
   let sorted = str.split(",").sort(sorter);
   while (res.length < len){
      res += sorted[0][0];
      sorted[0] = sorted[0].slice(1);
      sorted = sorted.sort(sorter);
   }
   return res;
};
console.log(specialSort(str));

Đầu ra

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

AAAJAKOPPLEROBY