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

Tạo mảng từ chuỗi ký tự duy nhất trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một chuỗi và bắt đầu ánh xạ các ký tự của nó từ 0.

Và mỗi khi, hàm gặp một ký tự duy nhất (không trùng lặp), nó sẽ tăng số lượng ánh xạ lên 1, nếu không hàm sẽ ánh xạ cùng một số cho các ký tự trùng lặp.

Ví dụ:Nếu chuỗi là -

const str = 'heeeyyyy';

Sau đó, đầu ra phải là -

const output = [0, 1, 1, 1, 2, 2, 2, 2];

Do đó, hãy viết mã cho chức năng này -

Ví dụ

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

const str = 'heeeyyyy';
const mapString = str => {
   const res = [];
   let curr = '', count = -1;
   for(let i = 0; i < str.length; i++){
      if(str[i] === curr){
         res.push(count);
      }else{
         count++;
         res.push(count);
         curr = str[i];
      };
   };
   return res;
};
console.log(mapString(str));

Đầu ra

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

[
   0, 1, 1, 1,
   2, 2, 2, 2
]