Xây dựng mảng từ ký tự duy nhất của chuỗi trong JavaScript
Chúng ta cần viết một hàm JavaScript nhận vào một chuỗi và bắt đầu ánh xạ các ký tự của nó từ 0.
Và mỗi lần, hàm gặp một ký tự duy nhất (không trùng lặp) nó nên tăng số lượng ánh xạ lên 1, ngược lại nó nên á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';
Thì kết quả đầu ra nên là:
const output = [0, 1, 1, 1, 2, 2, 2, 2];
Do đó, hãy viết mã cho hàm này:
Ví dụ
Mã thực hiện như sau:
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
Kết quả trong console sẽ là:
[ 0, 1, 1, 1, 2, 2, 2, 2 ]