• 0

لا يمكن قراءة الدالة length من متغير غير معرف undefined لغة javaScript

erroor.JPG.8f81c81e1dd9d169082b6db230e6c51a.JPGما المشكلة في كتابة هذا الكود؟

 

وماذا يطلب في الملاحظة التالية:

 

 

carbon.png

erroor.JPG

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1
بتاريخ 22 دقائق مضت قال Hussein Aoda:

اليك صورة السؤال ومرفق ملف

splits the string into pairs of two characters.js

نعم صديقي حسين الشيفرة تعمل بشكل صحيح و بعد إجراء الإختبارات عليها إجتازت إختبارين بنجاح و فشلت في إختبار واحد و هو نفس السبب الذي أخبرتك به و هو أن في الإختبار الثالث قمت بإستدعاء الدالة solution و تمرير string فارغ إليها :

//  على نص فارغ split لأنك تقوم بإستدعاء الدالة  undefined تساوي array هنا ستكون قيمة المتغير
var array = str.split("");

// undefined على متغير قيمته length  هنا يحدث الخطأ تقوم بإستدعاء الدالة 
for (var i = 0; i < array.length; i = i + 2) {
     var pair = [];
     pair.push(array[i], array[i + 1])
     collector.push(pair)
   }

و هذا كان سبب ظهور الخطأ أنك إستدعيت الدالة length على متغير قيمته undefined ( المتغير array) لإصلاح المشكلة و لتجاوز الإختبار الثالث علينا قبل إجراء أي عملية على قيمة المتغير str يجب التأكد من أن المتغير str من النوع string و هو غير فارغ أما في حال إذا ما كانت قيمة المتغير str ليست من النوع string أو فارغة سنقوم بإرجاع مصفوفة فارغة كما هو متوقع في الإختبار الثالث كالتالي :

function solution(str){
   // نقوم بإرجاع مصفوفة فارغة string غير صحيحة أو من نوع غير str إذا كانت قيمة المتغير
   if(!str || typeof str !== "string") return [];
   var array = str.split("");
   var collector = [];
   var result = [];
   for (var i = 0; i < array.length; i = i + 2) {
     var pair = [];
     pair.push(array[i], array[i + 1])
     collector.push(pair)
   }
   for (var i = 0; i < collector.length; i++) {
     var pairString = ""
     pairString = collector[i].join("")
     result.push(pairString)
   }
   if (result[result.length - 1].length % 2 !== 0) {
     result[result.length - 1] += "_"
   }
   return result;
}

بعد هذه الإضافة ستجتاز الدالة الإختبارات الثلاث بنجاح.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

مرحبًا حسين..

ترجمة رسالة الخطأ : أنك تقوم بإستدعاء الدالة length على متغير إما أن يكون غير معرف أو قيمته تساوي undefined.

الرجاء إرفاق الملف كاملًا.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

أهلا نزال 

السؤال يقول : 

اقتباس

Complete the solution so that it splits the string into pairs of two characters. If the string contains an odd number of characters then it should replace the missing second character of the final pair with an underscore ('_').

Examples:

 

solution('abc') // should return ['ab', 'c_']
solution('abcdef') // should return ['ab', 'cd', 'ef']

 

والاجابة التي كتبتها هي : 

function solution(str){
   var array = str.split("");
   var collector = [];
   var result = [];
   for (var i = 0; i < array.length; i = i + 2) {
     var pair = [];
     pair.push(array[i], array[i + 1])
     collector.push(pair)
   }
   for (var i = 0; i < collector.length; i++) {
     var pairString = ""
     pairString = collector[i].join("")
     result.push(pairString)
   }
   if (result[result.length - 1].length % 2 !== 0) {
     result[result.length - 1] += "_"
   }
   return result;
}

 

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 9 دقائق مضت قال Hussein Aoda:

أهلا نزال 

السؤال يقول : 

 


solution('abc') // should return ['ab', 'c_']
solution('abcdef') // should return ['ab', 'cd', 'ef']

السؤال يطلب منك عمل دالة تقبل string و تقوم بإرجاع مصفوفة في كل خانة منها تحتوي على حرفين من النص , في حال إذا ما كان عدد حروف النص فردي و ليس جوزي إذا أخر حرف يتبقى وحيدًا قم بإضافة "_" إليه ليصبح متكون من حرفين.

اقتباس

والاجابة التي كتبتها هي : 


function solution(str){
   var array = str.split("");
   var collector = [];
   var result = [];
   for (var i = 0; i < array.length; i = i + 2) {
     var pair = [];
     pair.push(array[i], array[i + 1])
     collector.push(pair)
   }
   for (var i = 0; i < collector.length; i++) {
     var pairString = ""
     pairString = collector[i].join("")
     result.push(pairString)
   }
   if (result[result.length - 1].length % 2 !== 0) {
     result[result.length - 1] += "_"
   }
   return result;
}

 

 

لقد قمت بتجربة الحل هذا و النتيجة صحيحة , لا اعلم ما نوع المشكلة التي واجهتك الرجاء التوضيح أكثر.

أعتقد أن السبب في ظهور رسالة الخطأ هو أنك عندما إستدعيت الدالة solution قمت بإدخال نص فارغ.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 23 دقائق مضت قال Nezar Madi:

 

لقد قمت بتجربة الحل هذا و النتيجة صحيحة , لا اعلم ما نوع المشكلة التي واجهتك الرجاء التوضيح أكثر.

أعتقد أن السبب في ظهور رسالة الخطأ هو أنك عندما إستدعيت الدالة solution قمت بإدخال نص فارغ.

كتبت الكودكما هو دون استدعاء دالة 

ويعطيني أن كل الاجابات صحيح باستثناء ذلك الخطأ 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 5 دقائق مضت قال Hussein Aoda:

كتبت الكودكما هو دون استدعاء دالة 

ويعطيني أن كل الاجابات صحيح باستثناء ذلك الخطأ 

الرجاء إرسال الملف حتى أقوم بتشغيله عندي و أرى سبب الخطأ و كيفية تنفيذك له.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

فعلا 

تم الحل بنجاح 

بارك الله فيك 

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن