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

هل لو قمت بتعلم data structures سأكون جيد فى التعامل مع المصفوفات و الاوبجكتس ام يجب ان اتعلم شئ اخر ؟ جافا سكريبت

أحمد عبد الله2

السؤال

السلام عليكم , أنا الان اتطلع الى ان اكون محترفا فى redux ولكن احيانا يقف امامى بعض العقبات التى لا استطيع حلها او احتاج الى المساعدة , واحيانا اظن اننى اذا تعلمت data structure ساكون جيدا فى التعامل مع مثل هذا الجزء من الكود , حيث اننى اتعامل مع arrays  و objects متداخلان فى بعضها , أنا حقا اريد احتراف التعامل مع arrays و objects بشكل احترافى هل لو قمت بتعلم data structure ساكون جيدا فى التعامل مع اكواد مثل هذه سواء قراءة او كتابة ام اننى احتاج شئيا اخر ؟

import {ADD_TO_CART, REMOVE_FROM_CART, CLEAR_CART} from '../constants';

const initialState = {
  cartItems: [],
  totalPrice: 0,
};

const cartItems = (state = initialState, action: any) => {
  const {payload} = action;
  const item = state.cartItems.find(product => product.id === payload.id);
  switch (action.type) {
    case ADD_TO_CART:
      if (item) {
        return {
          ...state,
          cartItems: state.cartItems.map(item =>
            item.id === payload.id
              ? {
                  ...item,
                  qty: item.qty + 1,
                }
              : item,
          ),
          totalPrice: state.totalPrice + payload.price,
        };
      }

      return {
        ...state,
        cartItems: [...state.cartItems, payload],
        totalPrice: state.totalPrice + payload.price,
      };

    case REMOVE_FROM_CART:
      if (item && item.qty !== 1) {
        return {
          ...state,
          cartItems: state.cartItems.map(item =>
            item.id === payload.id
              ? {
                  ...item,
                  qty: item.qty - 1,
                }
              : item,
          ),
          totalPrice: state.totalPrice - payload.price,
        };
      } else if (item.qty === 1)
        return {
          ...state,
          cartItems: state.cartItems.filter(
            cartItem => cartItem !== action.payload,
          ),
          totalPrice: state.totalPrice - payload.price,
        };

    case CLEAR_CART:
      return {...initialState};
  }
  return state;
};

export default cartItems;

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

وعليكم السلام

هياكل البيانات data structure هو موضوع كبير ويحتوي على الكثير من هياكل البيانات حيث أن arrays و objects يعتبران أبسط وأول مواضيع هياكل البيانات

أما هياكل البيانات الأخرى والأكثر تعقيداً فغالباً لن تحتاجها في استخدام redux

كلما عليك فعله هو ممارسة استخدام arrays و objects والتدرب عليهما أكثر فقط

يمكنك الإطلاع على مزيد من المعلومات حول arrays و objects من موسوعة حسوب من هنا و هنا

وتوثيقات أخرى من هنا و هنا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...