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

السؤال

Recommended Posts

  • 0
نشر

هناك عدة مشاكل و هي أولاً يجب إزالة = من السطر التالي 

for (let i = 0; i < cart.length; i++) {

بحيث متغير i  أصغر من عدد عناصر المصفوفة , ومن ثم يجب جمع عناصر المصفوفة , بحيث يجب إضافة اسم المصفوفة المخزنة بها الأعداد كما في السطر التالي 

total += cart[i];

فيكون كامل الكود هو 

const cart = [1,3,4,5,6];
let total = 0;

for (let i = 0; i < cart.length; i++) {
  total += cart[i];
}
console.log(total);

والنتيجة سوف تكون عدد 

19

 

  • 1
نشر (معدل)

بالإضافة إلى إجابة الأستاذ بﻻل, فإنه يوجد عدد من الدوال الخاصة بالمصفوفات في الجافاسكريبت التي تُوضع تحت مُسمى البرمجة الوظيفية(functional programming) والتي تقوم بعدة وظائف تجعل الشفرة البرمجية أسهل في القراءة وأقصر, من بين تلك الدوال يوجد دالة تقوم بتنفيذ الغرض المطلوب من شفرتك البرمجية تُسمى بreduce , تلك الدالة وظيفتها أنها تقوم بالمرور على المصفوفة كلها وتستقبل متغير من نوع دالة الإرجاع(callback function) وتقوم بإعطاء دالة الإرجاع متغيرين عبارة عن العنصر السابق والعنصر الحالي في المصفوفة, وتقوم بتنفيذ عملية تُحددها أنت على تلك العناصر ويكون تعريف الدالة بالشكل التالي

reduce((previousValue, currentValue) => { ... } ,initialValue)

ويُمثل المتغير initialValue القيمة الإبتدائية للعنصر السابق, حيث في بداية المرور بالمصفوفة لا يكون هنالك عنصر سابق,

فيمكن إذا تحويل الشفرة البرمجية خاصتك إلى كود أبسط كما في الشكل التالي

const cart = [1,3,4,5,6];
const total = cart.reduce((previousValue, currentValue) => previousValue + currentValue,0);

حيث تقوم الدالة بالمرور على عناصر المصفوفة, بدءاً من أول عنصر وهو "1" وتكون قيمة العنصر السابق الإبتدائية بصفر, فيتم

  1. جمع صفر مع 1 لتصبح قيمة العنصر الإبتدائية ب1
  2. في الدورة التالية يتم جمع قيمة ال1 مع ال3 لتصبح 4
  3. في الدورة التالية يتم جمع قيمة ال4 مع ال4 فتصبح 8
  4. في الدورة التالية يتم جمع قيمة ال8 مع ال5 فتصبح 13
  5. في الدورة التالية يتم جمع ال13 مع 6 فتصبح 19

ويمكنك قراءة هذا المقال حتى تفهم دوال المصفوفات بشكلٍ أفضل

 

تم التعديل في بواسطة شرف الدين2
إضافة مقالة

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...