Ola Mahmoud2 نشر 16 أكتوبر 2021 أرسل تقرير مشاركة نشر 16 أكتوبر 2021 ممكن مساعدة، أريد دالة يمكن تمرير قيمة لها وهذه القيمة عبارة مصفوفة من الأعداد ثم تقوم بإرجاع مجموع أكبر ثلاث اعداد في المصفوفة. ليكن اسم الدالة عبارة عن sumThreeNumbers 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 سامح أشرف نشر 16 أكتوبر 2021 أرسل تقرير مشاركة نشر 16 أكتوبر 2021 يمكنك أن تقوم بهذا من خلال عمل دالة getMaxThree والتالي تقوم بالبحث في المصفوفة وتُرجع أكبر ثلاثة أرقام فيها: var numbersArray = [93, 17, 91, 91, 98, 33, 9, 38, 55, 78, 29, 81, 60, 91]; function getMaxThree(numbersArray) { // إرجاع المصفوفة كما هي إن كانت تحتوي على أقل من ثلاث قيم if (numbersArray.length <= 3) return numbersArray; // القائمة ستحتوي على أول ثلاث عناصر في المصفوفة بشكل إفتراضي // سوف نقوم بتغير محتوياتها فيما بعد let max = [numbersArray[0], numbersArray[1], numbersArray[2]]; max.sort((a, b) => a - b); // ترتيب المصفوفة تصاعديًا // في الحلقة التالية نقوم بالمرور على عناصر القائمة بالكامل (ماعد أول ثلاث عناصر ولذلك بدأ العد من 3) for (let i = 3; i < numbersArray.length; i++) { // لو كان العنصر أكبر من قيمة أول عنصر في المصفوفة max سوف يتم تبديله // ثم نعيد ترتيب المصفوفة مرة أخرى if (numbersArray[i] > max[0]) { max[0] = numbersArray[i]; max.sort((a, b) => a - b); } } return max; } result = getMaxThree(numbersArray); console.log("the three largest values are:"); console.log(result); بعد ذلك يمكنك أن تستخدم التابع reduce لحساب مجموع المصفوفة result كالتالي: sum = result.reduce((total, ele) => total + ele, 0); console.log("the total of the three largest values is:"); console.log(sum); تستطيع أيضًا عمل دالة sumThreeNumbers والتالي تقوم بإستدعاء الدالة getMaxThree وحساب المجموع وإعادته كالتالي: function sumThreeNumbers(numbersArray) { result = getMaxThree(numbersArray); // الحصول على أكبر ثلاث أرقام من المصفوفة return result.reduce((total, ele) => total + ele, 0); // جمع قيمة الأرقام الثلاثة } ملاحظة: يمكنك أيضًا أن تستخدم حلقة تكرار لحساب مجموع المصفوفة بدلًا من التابع reduce، كالتالي: function sumThreeNumbers(numbersArray) { result = getMaxThree(numbersArray); sum = 0; for (let i = 0; i<result.length; i++) { sum += result[i]; } return sum; } هنا شكل الكود النهائي: function getMaxThree(numbersArray) { // إرجاع المصفوفة كما هي إن كانت تحتوي على أقل من ثلاث قيم if (numbersArray.length <= 3) return numbersArray; // القائمة ستحتوي على أول ثلاث عناصر في المصفوفة بشكل إفتراضي // سوف نقوم بتغير محتوياتها فيما بعد let max = [numbersArray[0], numbersArray[1], numbersArray[2]]; max.sort((a, b) => a - b); // ترتيب المصفوفة تصاعديًا // في الحلقة التالية نقوم بالمرور على عناصر القائمة بالكامل (ماعد أول ثلاث عناصر ولذلك بدأ العد من 3) for (let i = 3; i < numbersArray.length; i++) { // لو كان العنصر أكبر من قيمة أول عنصر في المصفوفة max سوف يتم تبديله // ثم نعيد ترتيب المصفوفة مرة أخرى if (numbersArray[i] > max[0]) { max[0] = numbersArray[i]; max.sort((a, b) => a - b); } } return max; } function sumThreeNumbers(numbersArray) { result = getMaxThree(numbersArray); return result.reduce((total, ele) => total + ele, 0); } //------------ var numbersArray = [93, 17, 91, 91, 98, 33, 9, 38, 55, 78, 29, 81, 60, 91]; console.log(sumThreeNumbers(numbersArray)); 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Ola Mahmoud2 نشر 16 أكتوبر 2021 الكاتب أرسل تقرير مشاركة نشر 16 أكتوبر 2021 شكرا ع المساعدة يوجد سؤال اخر ممكن التوضيح بعد اذنك أكتب دالة يمكن تمرير قيمة لها وهذه القيمة عبارة نص مكون من مجموعة من الكلمات ثم تقوم بإرجاع مصفوفة تحتوي على كل الكلمات التي تبدأ بحرف “A “أو حرف “B.“ ليكن اسم الدالة عبارة عن getWords استخدم التعريف التالي: function getWords (text) {} 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Salah Eddin Beriani2 نشر 16 أكتوبر 2021 أرسل تقرير مشاركة نشر 16 أكتوبر 2021 بتاريخ 3 ساعات قال Ola Mahmoud2: شكرا ع المساعدة يوجد سؤال اخر ممكن التوضيح بعد اذنك أكتب دالة يمكن تمرير قيمة لها وهذه القيمة عبارة نص مكون من مجموعة من الكلمات ثم تقوم بإرجاع مصفوفة تحتوي على كل الكلمات التي تبدأ بحرف “A “أو حرف “B.“ ليكن اسم الدالة عبارة عن getWords استخدم التعريف التالي: function getWords (text) {} يمكنك استخدام split و foreach و startsWith لتحقيق المطلوب function getWords(text) { console.log(text); let result = [];//قائمة لحفظ الكلمات المراد ارجاعها let words = text.split(' ');//تحويل النص لمصفوفة عبارة عن الكلمات المتواجدة في المصفوفة المفصولة بفراغ console.log(words); words.forEach((word) => {// استخدام حلقة التكرار لجلب كل كلمة على حدى if (word.startsWith('a') || word.startsWith('b')) {//التأكد من ان الكلمة تبدأ ب الحروف المرغوبة result.push(word); //اذا كانت الكلمة تبدأ بالحروف المرغوبة نضيفها لقائمة النتيجة } }); console.log(result); return result; // ارجاع النتيجة في الاخير } getWords('hello its a gread day body'); الاخراج سيكون كالتالي hello its a gread day body //النص [ 'hello', 'its', 'a', 'gread', 'day', 'body' ] // النص بعد تحويله لقائمة [ 'a', 'body' ] // النتيجة 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Ola Mahmoud2
ممكن مساعدة، أريد دالة يمكن تمرير قيمة لها وهذه القيمة عبارة مصفوفة من الأعداد ثم تقوم بإرجاع مجموع أكبر ثلاث اعداد في المصفوفة.
ليكن اسم الدالة عبارة عن sumThreeNumbers
رابط هذا التعليق
شارك على الشبكات الإجتماعية
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.