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

Ánh xạ các ký tự duy nhất của chuỗi thành một mảng - 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 thì á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];

Ví dụ

Sau đây là mã -

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

Sau đây là đầu ra trong bảng điều khiển -

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