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

Đếm số nguyên âm trong chuỗi JavaScript

Nguyên âm trong tiếng Anh: a, e, i, o, u (cả chữ thường và hoa). Để đếm chính xác, cần chuẩn hóa hoặc kiểm tra cả hai trường hợp.

Thuật toán

  1. Định nghĩa chuỗi chứa tất cả nguyên âm: 'aAeEiIoOuU'.
  2. Duyệt từng ký tự của chuỗi đầu vào.
  3. Kiểm tra xem ký tự có nằm trong chuỗi nguyên âm không (indexOf() !== -1).
  4. Tăng bộ đếm khi tìm thấy.

Code hoàn chỉnh

<script>
  function demNguyenAm(str) {
    const nguyenAm = 'aAeEiIoOuU';
    let count = 0;
    for (let i = 0; i < str.length; i++) {
      if (nguyenAm.indexOf(str[i]) !== -1) {
        count++;
      }
    }
    return count;
  }

  // Test
  const chuoi = "Tutorix is one of the best e-platforms";
  document.write(demNguyenAm(chuoi)); // 12
</script>

Kết quả

12

Cách hiện đại hơn (ES6+)

function demNguyenAmModern(str) {
  return (str.match(/[aeiou]/gi) || []).length;
}
// /gi: global + case-insensitive
// match() trả về mảng khớp hoặc null → dùng || [] để tránh lỗi

So sánh hiệu suất

Phương phápĐộ phức tạpĐọc hiểuHiệu suất
Vòng lặp + indexOfO(n)Dễ hiểuTốt
Regex matchO(n)Ngắn gọnTốt (tối ưu engine)
Reduce + SetO(n)FunctionalHơi chậm hơn

Lưu ý

  • Chuỗi rỗng hoặc null → trả về 0.
  • Ký tự Unicode (à, é, ô...) không được đếm — cần mở rộng regex nếu hỗ trợ tiếng Việt.