Hussein Ouda نشر 30 يونيو 2020 أرسل تقرير نشر 30 يونيو 2020 ما المشكلة في كتابة هذا الكود؟ وماذا يطلب في الملاحظة التالية: 1 اقتباس
0 Nezar Madi نشر 30 يونيو 2020 أرسل تقرير نشر 30 يونيو 2020 مرحبًا حسين.. ترجمة رسالة الخطأ : أنك تقوم بإستدعاء الدالة length على متغير إما أن يكون غير معرف أو قيمته تساوي undefined. الرجاء إرفاق الملف كاملًا. اقتباس
0 Hussein Ouda نشر 30 يونيو 2020 الكاتب أرسل تقرير نشر 30 يونيو 2020 أهلا نزال السؤال يقول : اقتباس 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 Nezar Madi نشر 30 يونيو 2020 أرسل تقرير نشر 30 يونيو 2020 بتاريخ 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 Hussein Ouda نشر 30 يونيو 2020 الكاتب أرسل تقرير نشر 30 يونيو 2020 بتاريخ 23 دقائق مضت قال Nezar Madi: لقد قمت بتجربة الحل هذا و النتيجة صحيحة , لا اعلم ما نوع المشكلة التي واجهتك الرجاء التوضيح أكثر. أعتقد أن السبب في ظهور رسالة الخطأ هو أنك عندما إستدعيت الدالة solution قمت بإدخال نص فارغ. كتبت الكودكما هو دون استدعاء دالة ويعطيني أن كل الاجابات صحيح باستثناء ذلك الخطأ 1 اقتباس
0 Nezar Madi نشر 30 يونيو 2020 أرسل تقرير نشر 30 يونيو 2020 بتاريخ 5 دقائق مضت قال Hussein Aoda: كتبت الكودكما هو دون استدعاء دالة ويعطيني أن كل الاجابات صحيح باستثناء ذلك الخطأ الرجاء إرسال الملف حتى أقوم بتشغيله عندي و أرى سبب الخطأ و كيفية تنفيذك له. اقتباس
0 Hussein Ouda نشر 30 يونيو 2020 الكاتب أرسل تقرير نشر 30 يونيو 2020 اليك صورة السؤال ومرفق ملف splits the string into pairs of two characters.js 1 اقتباس
1 Nezar Madi نشر 30 يونيو 2020 أرسل تقرير نشر 30 يونيو 2020 بتاريخ 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 Hussein Ouda نشر 30 يونيو 2020 الكاتب أرسل تقرير نشر 30 يونيو 2020 فعلا تم الحل بنجاح بارك الله فيك 1 اقتباس
السؤال
Hussein Ouda
ما المشكلة في كتابة هذا الكود؟
وماذا يطلب في الملاحظة التالية:
8 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.