Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Ánh xạ ký tự duy nhất của chuỗi sang mảng - JavaScript

Viết hàm ánh xạ chuỗi thành mảng số: mỗi ký tự mới (chưa thấy) tăng chỉ số, ký tự trùng dùng chỉ số cũ.

Ví dụ

Chuỗi: 'heeeyyyy'

Kết quả: [0, 1, 1, 1, 2, 2, 2, 2]

  • h (mới) → 0
  • e (mới) → 1, e,e → 1
  • y (mới) → 2, y,y,y → 2

Giải pháp

Mã triển khai:

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));

Kết quả

Đầu ra trong console:

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

Lưu ý: Chỉ xét ký tự liên tiếp. Nếu 'h' xuất hiện lại sau 'y' sẽ được chỉ số mới.