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

Nhóm lại các ký tự của một chuỗi trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript lấy chuỗi str làm đối số đầu tiên và duy nhất.

Chuỗi str có thể chứa ba loại ký tự -

  • Bảng chữ cái tiếng Anh:(A-Z), (a-z)

  • Chữ số:0-9

  • Các ký tự đặc biệt - Tất cả các ký tự còn lại khác

Hàm của chúng ta nên lặp lại qua chuỗi này và xây dựng một mảng bao gồm chính xác ba phần tử, đầu tiên chứa tất cả các bảng chữ cái có trong chuỗi, thứ hai chứa các chữ số và thứ ba là các ký tự đặc biệt duy trì thứ tự tương đối của các ký tự. Cuối cùng chúng ta sẽ trả về mảng này.

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

Đầu vào

const str = 'thi!1s is S@me23';

Đầu ra

const output = [ 'thisisSme', '123', '! @' ];

Ví dụ

Sau đây là mã -

const str = 'thi!1s is S@me23';
const regroupString = (str = '') => {
   const res = ['', '', ''];
   const alpha = 'abcdefghijklmnopqrstuvwxyz';
   const numerals = '0123456789';
   for(let i = 0; i < str.length; i++){
      const el = str[i];
      if(alpha.includes(el) || alpha.includes(el.toLowerCase())){
         res[0] += el;
         continue;
      };
      if(numerals.includes(el)){
         res[1] += el;
         continue;
      };
      res[2] += el;
   };
   return res;
};
console.log(regroupString(str));

Đầu ra

[ 'thisisSme', '123', '! @' ]