كيفية حساب عدد حروف العلة في النص باستخدام JavaScript

دقائق القراءة: 4

مقدمة: لماذا نحتاج إلى حساب حروف العلة؟

يُعدّ حساب عدد حروف العلة داخل نص من التمارين البرمجية الشائعة في مقابلات العمل للمطورين المبتدئين، كما يظهر كثيراً في منصات التحديات البرمجية. الفكرة بسيطة، لكنها تقيس فهمك لأساسيات التعامل مع النصوص، والحلقات التكرارية، والشروط في JavaScript.

في هذا المقال، سنتعلم كيفية إنشاء دالة تستقبل نصاً وتُرجع عدد حروف العلة الموجودة فيه. وسنعتبر الحروف a وe وi وo وu فقط حروف علة، بينما لا يُعد الحرف y ضمنها.

شرح برمجي لحساب عدد حروف العلة في النص باستخدام جافاسكربت

فهم المطلوب من المسألة

المطلوب هو كتابة دالة باسم getCount() تستقبل متغيراً نصياً، ثم تُرجع عدد حروف العلة الموجودة داخله.

على سبيل المثال:

  • إذا كان النص هو abracadabra فالنتيجة ستكون 5.
  • إذا كان النص هو abc فالنتيجة ستكون 1.

أمثلة على حساب عدد حروف العلة في النصوص البرمجية

خطة الحل خطوة بخطوة

قبل كتابة الكود، من الأفضل تقسيم الحل إلى خطوات منطقية واضحة:

  1. إنشاء دالة باسم getCount().
  2. تعريف متغير باسم vowelsCount لتخزين عدد حروف العلة.
  3. إنشاء مصفوفة باسم vowels تحتوي على جميع حروف العلة.
  4. المرور على كل حرف داخل النص المُدخل.
  5. التحقق مما إذا كان الحرف الحالي موجوداً داخل مصفوفة vowels.
  6. إذا كان الحرف من حروف العلة، نزيد قيمة vowelsCount بمقدار واحد.
  7. في النهاية نُرجع قيمة vowelsCount.

هذه الخطة تجعل الحل مفهوماً، وسهل المراجعة، ومناسباً للمبتدئين.

كتابة الكود لحساب عدد حروف العلة

1) إنشاء الدالة وتعريف العداد

نبدأ بكتابة الدالة، ثم نعرّف المتغير vowelsCount ونعطيه القيمة 0 لأننا لم نبدأ العد بعد.

بداية كتابة دالة لحساب عدد حروف العلة في جافاسكربت

2) إنشاء مصفوفة حروف العلة

بعد ذلك، ننشئ مصفوفة باسم vowels حتى نضع كل الحروف المطلوبة في مكان واحد منظم، مما يسهل استخدامها لاحقاً أثناء الفحص.

مصفوفة حروف العلة داخل كود جافاسكربت

3) المرور على كل حرف في النص

الخطوة التالية هي المرور على كل حرف داخل النص str. يمكننا تنفيذ ذلك باستخدام جملة for...of، وهي مناسبة جداً للتعامل مع السلاسل النصية في JavaScript.

ميزة for...of أنها تتيح الوصول مباشرة إلى كل حرف دون الحاجة إلى التعامل مع الفهارس يدوياً.

استخدام الحلقة for...of للمرور على حروف النص في جافاسكربت

4) التحقق من وجود الحرف داخل المصفوفة

بعد الوصول إلى كل حرف، نحتاج إلى معرفة ما إذا كان هذا الحرف ينتمي إلى حروف العلة أم لا. هنا يمكن استخدام الدالة includes()، وهي تفحص ما إذا كانت المصفوفة تحتوي على قيمة محددة.

إذا أعادت includes() القيمة true، فهذا يعني أن الحرف الحالي هو حرف علة.

استخدام includes للتحقق من وجود حرف العلة في المصفوفة

5) زيادة العداد عند العثور على حرف علة

إذا تحقق الشرط، نقوم بزيادة قيمة vowelsCount باستخدام معامل الزيادة ++. بهذه الطريقة يتم تسجيل كل ظهور جديد لحروف العلة داخل النص.

زيادة عداد حروف العلة باستخدام معامل الزيادة في جافاسكربت

6) إرجاع النتيجة النهائية

بعد الانتهاء من فحص جميع الحروف، يبقى فقط إرجاع قيمة vowelsCount من الدالة. يجب أن يكون return خارج الحلقة حتى تُعاد النتيجة بعد اكتمال العد بالكامل.

إرجاع عدد حروف العلة النهائي من الدالة في جافاسكربت

الكود الكامل

بعد جمع كل الخطوات السابقة، يصبح لدينا الحل الكامل التالي:

function getCount(str) {
  let vowelsCount = 0;
  const vowels = ['a', 'e', 'i', 'o', 'u'];

  for (const char of str) {
    if (vowels.includes(char)) {
      vowelsCount++;
    }
  }

  return vowelsCount;
}

شرح مبسط لآلية عمل الكود

  • الدالة getCount() تستقبل النص المطلوب فحصه.
  • المتغير vowelsCount يبدأ من 0.
  • المصفوفة vowels تحتوي على الحروف التي نريد عدّها.
  • الحلقة for...of تمر على كل حرف في النص.
  • الدالة includes() تتحقق من كون الحرف الحالي حرف علة.
  • إذا كان كذلك، تزيد قيمة العداد بمقدار واحد.
  • في النهاية، تُرجع الدالة إجمالي العدد.

أمثلة عملية على الاستخدام

console.log(getCount('abracadabra')); // 5
console.log(getCount('abc')); // 1
console.log(getCount('hello world')); // 3
console.log(getCount('xyz')); // 0

هذه الأمثلة توضح أن الدالة تعمل مع نصوص مختلفة، سواء احتوت على عدد كبير من حروف العلة أو لم تحتوِ على أي حرف منها.

ملاحظات مهمة لتحسين الحل

التعامل مع الأحرف الكبيرة

المسألة الأصلية تفترض أن النص يحتوي فقط على أحرف صغيرة ومسافات. لكن في التطبيقات الحقيقية، قد تحتاج إلى دعم الأحرف الكبيرة أيضاً. في هذه الحالة يمكنك تحويل النص أولاً باستخدام toLowerCase() قبل بدء الفحص.

function getCount(str) {
  let vowelsCount = 0;
  const vowels = ['a', 'e', 'i', 'o', 'u'];

  for (const char of str.toLowerCase()) {
    if (vowels.includes(char)) {
      vowelsCount++;
    }
  }

  return vowelsCount;
}

لماذا هذا الحل جيد للمبتدئين؟

هذا الأسلوب ممتاز للمبتدئين لأنه:

  • سهل القراءة والفهم.
  • يعتمد على أدوات أساسية في JavaScript.
  • يساعد على تعلم كيفية معالجة النصوص.
  • يمكن تطويره لاحقاً بطرق أكثر تقدماً مثل استخدام Regular Expressions.

الخلاصة التقنية

يُعدّ حساب عدد حروف العلة في النص تمريناً عملياً ممتازاً لفهم أساسيات JavaScript، خاصة عند التعامل مع السلاسل النصية، والمصفوفات، والحلقات الشرطية. الحل المعتمد على for...of مع includes() واضح وفعّال ومناسب جداً للمبتدئين، كما يمكن توسيعه بسهولة ليتعامل مع حالات أكثر تعقيداً مثل الأحرف الكبيرة أو النصوص المختلطة. من الناحية التقنية، هذا النوع من المسائل لا يختبر حفظ الأوامر فقط، بل يختبر قدرتك على تحويل الفكرة إلى خطوات منطقية قابلة للتنفيذ.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *