اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

وظيفة هذا الكود هو إعادة ناتج جمع كل العناصر اللي موجودة في المصفوفة myArr ولنفترض لدينا المصفوفة 

[1, 2, 3, 4]

عند استخدام الدالة reduce كالتالي

this.myArr.reduce((num1, num2) => num1 + num2)

فكرة reduce إنها بتمر على كل عنصر في المصفوفة،وتنفذ عليه عملية (زي الجمع أو الضرب أو أي حاجة) مع ناتج العملية السابقة، وبتفضل تكرر كده لحد ما تختصر المصفوفة لقيمة واحدة بس.
في هذا الكود أنت تريد الجمع لو myArr = [1, 2, 3, 4] فـ reduce هتشتغل كالتالي:

  • أول خطوة: 1 + 2 = 3
  • ثاني خطوة: 3 + 3 = 6
  • ثالث خطوة: 6 + 4 = 10
  • وفي الأخر بيرجع 10.

يعني السطر ده كله

 return this.myArr.reduce((num1,num2) => num1 + num2)

وظيفته يحسب مجموع كل الأرقام اللي موجودة جوّا المصفوفة myArr ويرجع الناتج.

تُستخدم أيضا الدالة ()reduce مع النصوص وأنواع البيانات الأخرى وتكون القيمة المرجعة منها إما رقم أو نص أو أي نوع بيانات أخر.

تستطيع المعرفة أكثر عن هذه الدالة في موسوعة حسوب https://wiki.hsoub.com/JavaScript/Array/reduce

  • 0
نشر

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

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce(function(total, number) {
  return total + number;
}, 0);
console.log(sum); // Output: 15

حيث تأخذ الدالة reduce() معاملين أساسيين:

أولا دالة التجميع (Reducer Function) وهي الدالة التي تنفذ على كل عنصر في المصفوفة.

والثاني هو القيمة الابتدائية (Initial Value) وهو اختياري وتستخدم كقيمة أولية للحساب.

ويمكنك قراءة المزيد حولها من خلال التالي :

 

أما بخصوص الكود المرفق :

فإن this.myArr هي المصفوفة التي نريد جمع عناصرها.

و (num1, num2) => num1 + num2 هنا :

  • num1 هنا تمثل المجموع الكلي الحالي (القيمة المتراكمة).
  • num2 تمثل العنصر الحالي في المصفوفة.

حيث الدالة تقوم بجمع num1 و num2 في كل خطوة حتى تنتهي من جميع العناصر.

مثال توضيحي بالأرقان لنفترض أن :

this.myArr = [1, 2, 3, 4 

سيعمل الكود كالتالي:

  • يأخذ العنصر الأول (1) كقيمة ابتدائية لـ num1.
  • ثم يضيف num1 + num2 في كل خطوة:
    • الخطوة 1: 1 + 2 = 3
    • الخطوة 2: 3 + 3 = 6
    • الخطوة 3: 6 + 4 = 10
    • النتيجة النهائية: 10

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...