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

توفيق اسحيمة

الأعضاء
  • المساهمات

    181
  • تاريخ الانضمام

  • تاريخ آخر زيارة

أجوبة بواسطة توفيق اسحيمة

  1. بتاريخ 19 ساعات قال بلال زيادة:

    يمكنك من المتابعة الدقيقة مع المدرب عندما يشرح الدروس , و من ثم تقوم بالتطبيق العملي مع المدرب ، مع التطبيق الفردي و مقارنة كتابة الكود كما كنت تكتبه مع المدرب مع الكود الذي كتبته بنفسك و تحديد الأخطاء و العمل على تفاديها مرة أخرى عندما تعاود كتابة الكود بنفسك مرة أخرى ، أيضا تدوين الملاحضات و الدوال سيعمل على زيادة التركيز عندك و سيساهم هذا الأمر في تسهيل الوصول إلى المعلومات و الملاحظات التي تحتاجها في الوقت المناسب ، العمل على تنفيذ مشاريع كاملة بمفردك فهذا الأمر سينمي لديك مهارة كتابة الكود و معرفة الأخطاء و حلها بنفسك ، حاول التركيز في الدروس أو في كل جزئية بشكلٍ كبير حتى لا تقع في التشتت مما يفقدك الكثير من المعلومات. 

    شكرا لك استادي

    هل من الممكن ان تتكرم وتعطيني اجابة لاحد اسئلتي السابقة التي كنت قد وضعتها تحت عنوان تقييم للمستوى ضمن مجال تطوير واجهات المستخدم

    رايكم يهمني وبشدة جزاكم الله خيرا.

    بتاريخ 18 ساعات قال Hassan Hedr:

    تدرب كثيرًا لتواجه مشاكل جديدة دومًا وفكر في حلول لها وابحث بنفسك وأسأل في حال لم تجد الحل، طبق مشاريع كاملة صغيرة خارجية توظف فيها ما تعلمته لفهمه بشكل أكبر، تطبيق المشاريع هو أكثر ما يغني معرفتك ضمن أي مجال، حاول تنفيذ وتقليد واجهات أو مكونات أعجبتك على الإنترنت.

    حاول فهم الأفكار الجديدة وتجنب حفظها وكرر تنفيذها ضمن أكثر من فكرة لزيادة الفهم وطريقة التنفيذ، لا تركز كثيرًا على الأدوات فهي دائمة التغيير ركز على الأفكار الأساسية التي توظفها.

    يمكنك الاستفادة من قسم "نصائح لتعلم البرمجة" ضمن المقال التالي:

     

     

    شكرا لك استادي

    هل من الممكن ان تتكرم وتعطيني اجابة لاحد اسئلتي السابقة التي كنت قد وضعتها تحت عنوان تقييم للمستوى ضمن مجال تطوير واجهات المستخدم

    رايكم يهمني وبشدة جزاكم الله خيرا.

    • أعجبني 1
  2. لدي تساؤل اخوتي ارجو منكم الاجابة

    اود التعمق في دراسة الجافاسكريبت وفهمها بنسبة لا تقل عن 70 او 80 بالمائة

    ما هي افضل الطرق لفعل دلك

    حدثونا عن تجاربكم السابقة عن دراستكم وتعمقكم بالجافاسكريبت

    ملاحظة (اود التعمق بالجافاسكريبت لانني ارجو ان احترف مجال تطوير واجهات المستخدم front-end)

    • أعجبني 1
  3. السلام عليكم اخواني 

    رمضان كريم

    اود ان تعطوني ارائكم وتقييماتكم في هادا المشروع الصغير والدي هو عبارة عن صفحة هبوط قمت فيها باستخدام بعض الانيميشن و التنسيقات اضافة الى انني قمت بالتدرب فيها على مفاهيم برمجية بالجافاسكريبت مثل  regular expressions  والدوال التي تهم الوقت و التكرار اضافة الى انني حاولت ان اجعل هاته الصفحة متجاوبة مع جميع احجام الشاشات.

    رابط المشروع 

    https://nantech.netlify.app

    ملاحظة (اطمح الى الوصول الى نقطة احتراف تطوير واجهات المستخدم) لدا رايكم يهمني وبشدة في هل بهكدا مستوى يمكنني ان اصل الى مبتغاي

    ملاحظة 2 (انا الان احاول فهم  كيفية عمل الجافاسكريبت بعمق ) فهل بهكدا مشاريع ساحترف الجافاسكريبت ام لا.

    وفي الاخير اود منكم ابداء رايكم في كل ما دكرت اعلاه بحيث انني اود معرفة من خلال رايكم في هل ان تفكيري المنطقي بدا بالتطور مقارنة بالسابق ام لا.

    صراحة اتمنى ان اكون قد وفقت في طرح استفساراتي.

    جزاكم الله خيرا.

  4. بتاريخ 47 دقائق مضت قال مسعود زاهي:

    ال weakSet تسمح لك بتخزين objects في مجموعة،  فهي تشبه ال Set يعني أن ما يوجد في المجموعة يكون فريداً من نوعه غير مكرر.

    الإختلاف الرئيسي بينها وبين ال Set هو أن WeakSet مجموعة من ال objects فقط. يعني انها لا يمكن أن تحتوي على قيمة من نوع بدائي.

     مثال على ذلك:

    
    const visitedSet = new WeakSet();
    let john = { name: "John" };
    let pete = { name: "Pete" };
    
    visitedSet.add(john); // زارنا ‫John
    visitedSet.add(pete); // وبعده ‫Pete
    
    visitedSet.add("Mary"); // خطأ
                            // ﻷن القيمة هنا من نوع بياني بدائي
                            // الأنواع  البيانية البدائية هي:
                            //String, Number, BigInt, Boolean, Symbol

    أم بالنسبة لل WeakMap فهي مجموعة من الثنائيات كل ثنائية تضم مفتاحاً وقيمة (key و value) فهي تشبه  ال Map لكن الخلاف بينهما يكمن في أن المفتاح (key) يجب أن يكون object لا يمكن أن يكون من أنواع البيانات البدائية.

    مثال على ذلك:

    
    const wm1 = new WeakMap(),
          wm2 = new WeakMap();
    
    const o1 = {},
          o2 = function() {};
    
    let obj = {};
    
    wm1.set(o1, 37);
    wm1.set(o2, 'azerty');
    wm2.set(o1, o2); //القيمة يمكن أن تكون اي شيء، فيمكن أن تكون
                     // object
                     // أو دالة
    wm2.set(o3, undefined);
    
    wm2.set(wm1, wm2); // ويمكن أن يكون المفتاح والقيمة عبارة عن
                       // WeakMaps
                       // أيضا
    
    w2.set("test", "Whoops");// خطأ المفتاح لا يمكن أن يكون من نوع  بياني بدائي
                             
                             

     

    شكرا لك على اهتمامك اخي

    شرح ممتاز

    من ناحية الكود تقريبا فهمته 

    لكن ما اود ان اعرفه بالتحديد هو متى نحتاج استخدام هاته الخاصيات  map set weakMap weakset 

    شكرا لك.

    بتاريخ 24 دقائق مضت قال Adnane Kadri:

    قبل محاولة فهم الأطقم والخرائط ضعيفة الإشارة weakSet و weakMap يجب أولا فهم ما هي الخرائط Maps والأطقم Sets من الأساس. لنقم بتناول كل منهما كالتالي:

    • يمكن فهم الأطقم Sets على أنها تجميعات من القيم الفريدة من أي نوع بيانات (سلسلة نصية، مصفوفة .. الخ). بمعنى أن كل عنصر في هاته التجميعة لا يمكن أن يتكرر ضمن نفس المجموعة. إستعمالات شائعة: 
      
      // إنشاء طقم 
      const letters = new Set(["أ","ب","ت"]);
      
      // إضافة قيمة جديدة للطقم
      letters.add("ج");
      
      // حذف قيمة من الطقم
      letters.delete("ج");
      
      // التحقق ما كان الطقم يمتلك قيمة ما
      letters.has("ج");
      
      // حذف كامل القيم من الطقم
      letters.clear();
       
    • يمكن فهم الخرائط Maps على أنها تجميعات من القيم معرفة في أزواج مفتاح-قيمة / key-value حيث يمكن أن تكون هاته المفاتيح أي نوع بيانات. 
      
      // إنشاء خريطة 
      const platforms = new Map([
        ["Mostaql", 500],
        ["Hsoub.io", 300],
        ["Orange", 200]
      ]);
      
      // إضافة قيمة جديدة للخريطة
      platforms.set("Khamsat", 300);
      
      // جلب قيمة من الخريطة عن طريق مفتاحها
      platforms.get("Khamsat");

       

    و الأطقم والخرائط ضعيفة الإشارة تختلف عنها من حيث أنها:

    • تقبل تخزين كائنات فقط، لا يمكن تخزين أنواع أولية فيها.
      
      let visitedSet = new WeakSet();
      
      let john = { name: "John" };
      
      visitedSet.add(john); // مسموح
      visitedSet.add('5'); // غير مسموح

       

    • تمتلك الأطقم والخرائط ضعيفة الإشارة توابع محدودة وأقل من الأطقم والخرائط العادية. توابع مثل keys أو values لن تكون متوفرة.

    ما الغرض وراء استعمالها؟

    تستعمل أساسا لتخزين البيانات الإضافية المتعلقة بكائن ما. حيث يتم تعيين هذا الكائن كفمتاح لمجموعة البيانات الإضافية الخاصة به. وبالتالي، لو قمنا بمسح هذا الكائن من الذاكرة فستختفي هاته البيانات أيضا. 

    ولنقل كمثال، يريد الطالب Jhon تخزين ملف سري يخصه، بشرط أن خروج هذا الطالب سيعني مسح هذا الملف السري. نقوم بذلك كالتالي:

    
    weakMap.set(john, "secret documents");

      أي فقدان للكائن john في التطبيق، سيؤدي إلى مسح القيمة المسندة إليه كمفتاح في الخارطة ضعيفة الإشارة. 

    يمكنك الإستزادة بالتعرف عليهما في النوع WeakMap والنوع WeakSet: الخرائط والأطقم ضعيفة الإشارة في جافاسكربت.

    شكرا على اهتمامك اخي

    اود بالتحديد معرفة اكثر واهم الحالات التي نحتاج فيها لاستخدام هاته الخصائص بعيدا عن الكود 

    اود ان افهمهم بمعنى عامي حتى يترسخوا بداكرتي

    اتمنى ان اكون قد وفقت في طرح تساؤلي.

    شكرا.

    بتاريخ 58 دقائق مضت قال مسعود زاهي:

    ال weakSet تسمح لك بتخزين objects في مجموعة،  فهي تشبه ال Set يعني أن ما يوجد في المجموعة يكون فريداً من نوعه غير مكرر.

    الإختلاف الرئيسي بينها وبين ال Set هو أن WeakSet مجموعة من ال objects فقط. يعني انها لا يمكن أن تحتوي على قيمة من نوع بدائي.

     مثال على ذلك:

    
    const visitedSet = new WeakSet();
    let john = { name: "John" };
    let pete = { name: "Pete" };
    
    visitedSet.add(john); // زارنا ‫John
    visitedSet.add(pete); // وبعده ‫Pete
    
    visitedSet.add("Mary"); // خطأ
                            // ﻷن القيمة هنا من نوع بياني بدائي
                            // الأنواع  البيانية البدائية هي:
                            //String, Number, BigInt, Boolean, Symbol

    أم بالنسبة لل WeakMap فهي مجموعة من الثنائيات كل ثنائية تضم مفتاحاً وقيمة (key و value) فهي تشبه  ال Map لكن الخلاف بينهما يكمن في أن المفتاح (key) يجب أن يكون object لا يمكن أن يكون من أنواع البيانات البدائية.

    مثال على ذلك:

    
    const wm1 = new WeakMap(),
          wm2 = new WeakMap();
    
    const o1 = {},
          o2 = function() {};
    
    let obj = {};
    
    wm1.set(o1, 37);
    wm1.set(o2, 'azerty');
    wm2.set(o1, o2); //القيمة يمكن أن تكون اي شيء، فيمكن أن تكون
                     // object
                     // أو دالة
    wm2.set(o3, undefined);
    
    wm2.set(wm1, wm2); // ويمكن أن يكون المفتاح والقيمة عبارة عن
                       // WeakMaps
                       // أيضا
    
    w2.set("test", "Whoops");// خطأ المفتاح لا يمكن أن يكون من نوع  بياني بدائي
                             
                             

     

    تلميح

    اود بالتحديد معرفة اكثر واهم الحالات التي نحتاج فيها لاستخدام هاته الخصائص بعيدا عن الكود 

    اود ان افهمهم بمعنى عامي حتى يترسخوا بداكرتي

    اتمنى ان اكون قد وفقت في طرح تساؤلي.

  5. بتاريخ 45 دقائق مضت قال Mohammad Al Eik:
    
    let myString = "SShhimmmmmaaaa";
    
    let fiArr = myString.split("").filter(function (ele, index) {
      return myString.indexOf(ele) === index;
    }).reduce(function (acc, current) {
      return `${acc}${current}`;
    });

    اولاً نحول النص الى مصفوفة

    
    let myString = "SShhimmmmmaaaa";
    
    let fiArr = myString.split("") // [S,S,h,h,i,m,m,m,m,m,a,a,a,a]
    

    ثانياً

    index هي عنوان العنصر في المصفوفة أي : اول عنصر 0 الثاني 1 الثالث 2 ...

    ele هو العنصر بذاته أي : الاول S الثاني S الثالث h ...

    نقوم بداخل الدالة filter بحذف العناصر المكررة .

    حيث أن myString.indexOf تقوم بأرجاع اول عنوان يطابق ele في المصفوفة myString 

    و index هو عنوان ال ele في هذه الloop

    كما قد وضحت لك في الشيفرة التالية كيف ستكون المقارنة في كل دورة في هذه ال loop 

    الطرف الايسر يمثل  myString.indexOf

    الطرف الأيمن index

    
    0 === 0 => [s]
      //            0 !== 1 false
      //            2 === 2 => [s,h]
      //            2 !== 3 => false
      //            4 === 4 => [s,h,i]

     

    شكرا لك اخي على سعة ورحب صدرك في توضيح الفكرة

    لكن صراحة لم اصل الى الفهم بشكل دقيق وخصوصا لهدا الجزء الدي قمت بشرحه في المثال السابق

    اعتدر على كثرة الاسئلة

  6. السلام عليكم

    من فضلكم اود ان افهم دور هادا الكود  

    return myString.indexOf(ele) === index;

    والدي هو داخل هاته الدالة والتي عملها هو فلترة الحروف المكررة بحيث تصبح لدينا سلسلة نصية صحيحة والتي هي   Shima

    let myString = "SShhimmmmmaaaa";
    
    let fiArr = myString.split("").filter(function (ele, index) {
      return myString.indexOf(ele) === index;
    }).reduce(function (acc, current) {
      return `${acc}${current}`;
    });

    جزاكم الله خيرا.

    • أعجبني 1
  7. بتاريخ 28 دقائق مضت قال محمد أبو عواد:

    هل بدأت بكتابة الكود ؟ أرجو منك البدء بكتابته وأخبرنا بالمشكلة التي واجهتك فيه لنساعدك في حلها

    شكرا لك اخي على اهتمامك

    نعم لقد حاولت وحاولت لكن صراحة دون نتيجة

    المشكل الدي يواجهني هو في كيفية استخراج الارقام من السلسلة النصية التي هي داخل المصفوفة وجمعهم مع بعض 

    • أعجبني 1
  8. السلام عليكم 

    هل من الممكن ان يساعدني احد الاخوة في حل هادا التمرين والدي صراحة استصعب علي حله رغم انني شيءا ما اعرف الادوات التي يجب استخدامها لحله مثلا يجب استخدام for loop  للعبور على عناصر القائمة وكدا استخدام الخاصية  parseInt لاستخراج الارقام من وسط السلسة النصية ...

    متطلبات التمرين كالتالي

    قم بإنشاء Function بإسم specialMix تقبل منك عدد غير معروف من ال Parameters

    ال Function يمكن أن تقبل أرقام أو Strings أو Strings تحتوي على أرقام في بدايتها

    إذا كانت جميع ال Arguments عبارة عن أرقام قم بجمعهم

    إذا كانت Strings تحتوي على أرقام قم بإستخراج الارقام منهم وقم بجمعهم وطبعا تستثني أي String لا يحتوي على أرقام

    إذا كانت جميع ال Arguments عبارة عن String تقوم بطباعة رسالة All Is Strings

    شاهد المثال لترى ال Test Cases

    function specialMix(...data) {
      // Your Code Here
    }
    
    console.log(specialMix(10, 20, 30)); // 60
    console.log(specialMix("10Test", "Testing", "20Cool")); // 30
    console.log(specialMix("Testing", "10Testing", "40Cool")); // 50
    console.log(specialMix("Test", "Cool", "Test")); // All Is Strings

    شكرا.

    • أعجبني 1
  9. بتاريخ 10 دقائق مضت قال Sam Ahw:

    Arithmetic Operators أو العمليات الحسابية في الجافاسكريبت هي: + , - , * , / , %

    هل قمت بمحاولة حل السؤال؟ أرجو أن تنشر الطرق التي جربتها والناتج الذي ظهر معك

    نعم اخي لقد حاولت استخراج النتيجة عبر استخدام العمليات الحسابية لكن دائما ما يكون الناتج اما اكبر من الصفر او اصغر من الصفر صراحة لقد حيرني هادا التمرين واود بشدة معرفة كيفية حله.

    شكرا لك

  10. إستبدل علامة الإستفهام بواحد من ال Arithmetic Operators لتخرج بالنتيجة المطلوبة

    غير مسموح التعديل على الأرقام و النتيجة المطلوبة هي صفر

    console.log(10 ? 20 ? 15 ? 3 ? 190 ? 10 ? 400); // 0

     

    • أعجبني 1
  11. بتاريخ 16 ساعات قال Adnane Kadri:

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

    • ستكون هناك حاجة إلى الكثير من تجاوز الشيفرات و إعادة كتابة الملفات أو إعادة تعيين بعض التنسيقات التي يمكن أن تؤدي إلى قضاء الكثير من الوقت في تصميم موقع الويب وترميزه إذا كان التصميم يميل إلى الانحراف عن التصميم المعتاد المستخدم في Bootstrap ، أي أنه سيتعين عليك بذل جهد إضافي أثناء إنشاء تصميم وإلا ستبدو جميع مواقع الويب التي تقوم بهاا متشابهة إذا لم تقم بإجراء عمليات تخصيص كبيرة.

    • الأصناف التي يوفرها بوتستراب كثير ويمكن أن تؤدي إلى الكثير من العبث في HTML وهو أمر غير مطلوب دوما و قد يتعارض مع مفاهيم الشيفرة النظيفة في بعض الأحيان . 

    • نسخ متأخرة من بوتستراب معتمدة كليا على jQuery و Pooper ، مما يترك معظم الشيفرات الإضافية غير مستخدمة ، وهو أمر اخر يتعارض مع مفاهيم الشيفرة النظيفة بجانب أنه قد يؤخر تحميل الصفحات إن كانت سرعات التحميل لدى عملائك أو أغلبهم بطيئة . 

    لكن هذا لا يمنع بالطبع من إمتلاك الكثير من الإيجابيات التي يمكن أن تجعلك تغفل أو تتقبل هاته السلبيات ، نذكر من بينها : 

    • كونه يساعدك على تجنب العديد من الأخطاء التي يمكن أن تظهر أثناء تعميم الخواص على المتصفحات . فعلى سبيل المثال : لا نقوم بتخصيص صنف لـ google chrome و اخر لـ IE ، بل نجد أن بوتستراب يوفر صنفا واحدا جامعا يتعامل به بوتستراب مع كامل التغيرات بين المتصفحات . 
    • بجانب أنه يعتمد على jQuery فهو أيضا يجنبك إستعمال الكثير من إضافات الجيكويري أو تضمين المكتبات المعتمدة عليها لخدمة أغراض معينة . 
    • يساعدك في الحصول على عمل و يضمن لك مكانا في سوق العمل ، إذ أن بوتستراب واحد من أكثر الأدوات المطلوبة في سوق العمل . 
    • يقدم Bootstrap نظام تخطيط شبكي Grid system رائع ، يختصر عليك هذا الكثير من الجهد و الشيفرات الإضافية . 
    • التجاوبية ، فأغلب حاويات بوتستراب تجاوبية و مرنة مع كل الشاشات ، هذا بجانب أنه يوفر أصنافا خاصة بكل نوع من الشاشات . 
    • يوفر الوقت ، فبوتستراب يحرص على توفير أغلب -إن لم نقل كل- ما تحتاجه لتصميم موقع الويب الخاص بك . 
       

    أما عن تفضيلك لنظام التخطيط الشبكي grid system عن نمط الصندوق المرن flexbox فهو شيء طبيعي جدا ، ولا مشكلة بذلك إن كان إستخدامه أفضل و أكثر مرونة بالنسبة لك . 

    قد تحتاج الإطلاع على العلاقة بين الخطاطة الشبكية Grid Layout وبين طرق التخطيط الأخرى .

    شكرا لك اخي على وقتك الثمين

    بعد قراءة جوابك ظهر لي سؤال نوعا ما منطقي

    هل يمكننا استخدام المكونات التي نريدها فقط دون تحميل البوتستراب كاملا بحيث لا يؤثر على اداء وفعالية المشروع

    جزاك الله خيرا.

    • أعجبني 1
  12. بتاريخ 12 دقائق مضت قال محمد أبو عواد:

    هناك شيء يجب معرفته عن grid system الخاص ببوتستراب , وهو أن grid system تم بناءه باستخدام الخاصية flex , فتجد أن الصنف row لديه الخصائص التالية

    
    row{
        display: flex;
        flex-wrap: wrap;
        margin-right: -15px;
        margin-left: -15px;
    }

    كما تلاحظ أنه يعتمد تماما على خاصية flex , ثم بداخل الصنف row تستخدم أحد أصناف col , على فرض استخدمت الصنف col-sm فتنسيقاته كالتالي

    
    .col-sm {
        flex-basis: 0;
        flex-grow: 1;
        max-width: 100%;
    }

    أي أنها تعتمد على تنسيقات الخاصية flex , هذا بالنسبة لنظام grid system الخاص ببوتستراب , أما بالنسبة للعيوب , لا يوجد أي عيوب تقريبا غير أن امكانياتها محدودة , فعلى سبيل المثال الهوامش الداخلية -Padding- و الهوامش الخارجية -margin- محدودة فهي تبدأ من 0 وتنتهي عند 5 , اذا أردت أكثر فيجب عليك أن تكتب ذلك بنفسك في ملف التنسيقات وتحدد قيمة الهامش بنفسك , أما من جانب مميزاته فهو يوفر عليك الكثير من خلال استخدام الأصناف الجاهزة والمكونات الجاهزة

    شكرا لك اخي على وقتك

    الدي فهمت انه لا مشكلة في استخدامه بتاتا هنا اتحدث من ناحية حجم المشروع والفعالية وغيرها من الامور الجانبية التي تخص الاداء

    • أعجبني 1
  13. السلام عليكم 

    لدي استفسار دائما ما يخطر ببالي واتمنى من احد الاخوة ان يتكرم ويجيبني

    لقد سبق لي ودرست عبر احد دورات الاكاديمية كيفية تطوير واجهات المستخدم وكان اغلب اعتمادنا في بناء المشاريع على البوتستراب 

    حتى اصبحت تقريبا ملما بجميع مكوناته لكن في بعض الاحيان اود بناء بعض المشاريع بدون استخدامه لاكن دائما ما احتاج  استعماله  استعمالا واحدا وهو grid system  لاني صراحة لا احبد استخدام flexbox 

    فهل هادا شيئ عادي و ما هي ابرز عيوب استخدام البوتستراب

    جزاكم الله خيرا.

    • أعجبني 2
  14. بتاريخ 11 دقائق مضت قال بلال زيادة:

    يمكنك استخدام دالة toUpperCase في جافاسكريبت بحيث تكون الأسماء لديك بهذا الشكل 

    
    const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];

    ثم يمكنك إنشاء for loop بهذا الشكل , ليتم تحويل جميع الكلمات إلى UpperCase عن طريق الدالة toUpperCase

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

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

    
    const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
    for ( let i = 0; i < days.length; i++ ) {
      days[i] = days[i].toUpperCase();
      console.log(days[i]);
    }

     

    شكرا لك اخي 

    اعتقد انك لم تفهم المقصود فالدوال toUpperCase and toLowerCase  اعرف دورهما لكن في الحالة التي دكرت اعلاه نريد ان نغير شكل تلك الكلمة التي ضمن المتغير بحيت انها تحتوي في نفس الوقت على خليط من الاحرف الكبيرة والصغيرة 

    ما نريده بالضبط هو تحويل الاحرف الكبيرة الى احرف صغيرة

    وتحويل الاحرف الصغيرة الى احرف كبيرة

    شكرا لك

    • أعجبني 1
  15. السلام عليكم 

    لدي هادا المتغير الدي يحتوي على هاته الكلمة دات الحروف المختلطة بين حروف كبيرة وحروف صغيرة 

    let swappedName = "shImA";

    احاول ان اتحكم في اعادة جعل الحروف عكس ماهي عليه او بمعنى اخر الحروف الصغيرة تصبح كبيرة والحروف الكبيرة تصبح صغيرة بحيث يكون الناتج كالتالي

    "SHiMa"

    ودلك طبعا عن طريق for loop

    كل محاولاتي بائت بالفشل فمعظم النتائج التي اتحصل عليها اما تكون الكلمة كاملة بحروف كبيرة او العكس

    جزاكم الله خيرا. 

    • أعجبني 2
  16. السلام عليكم 

    قمت ببحث حول الخاصية المدكورة لكنصراحة لم اجد شرحا مفهوما حولها فما هو دورها بالضبط

    وايضا اود ان اعمل اثنين من group كل واحد منفصل عن الاخر 

    و group الاول يكون به لديه ابن وحفيد اتمنى ان اكون قد وفقت في طرح تساؤلي

    اليكم الكود الدي قمت بكتابته لكنه دائما ما يجعل group الثاني احد ابناء ال group الاول وهادا ما لا نريده

    console.group("group 1");
    console.log("message one");
    console.log("message two");
    console.groupCollapsed("child group");
    console.log("message one");
    console.log("message two");
    console.groupCollapsed("grand child group");
    console.log("message one");
    console.log("message two");
    console.groupEnd();
    console.group("group 2");
    console.log("message one");
    console.log("message two");

    النتيجة المراد الحصول عليها

    console_group.png

    • أعجبني 1
  17. بتاريخ 17 دقائق مضت قال Ziyad Hasan:

    أنت تحتاج الي تطوير التفكير البرمجي عن طريق عمل مشاريع كثيرة بعد تعلم الاساسيات و لكن في البداية من خلال مشاهدة فيديو يساعدك لعمل مشروع ثم تحتاج الي عمل مشاريع أخري من دون مشاهدة أي فيديو و عندما تواجهك مشكلة حاول ان تحل هذه المشكلة بدون البحث في اي موقع و ان لم تستطع حلها ابحث في المواقع و مع الوقت سوف تشعر بتحسن التفكير البرمجي و يمكنك ايضا تحسينه من خلال دورات مثل الخواريزمات و هياكل البيانات و دورة علوم الحاسوب 

    والموضوع يحتاج الي صبر لوقت طويل

    كلامك صحيح اخي 

    شكرا لك

    ادا كان من الممكن ان تدلني على احد الدورات التي تهتم بتعليم الخوارزميات لانه يظهر لي انها هي التي تنقصني 

    فكما قلت مسبقا انا افهم الكود والخاصيات البرمجية لكن ينقصني كيفية وطريقة التوظيف لكل ما ادرسه فا نا لحد الان لم اشعر باي تحسن في المستوى بتاتا

    جزاك الله خيرا.

  18. السلام عليكم ورحمة الله 

    حاليا اقوم بتعلم برمجة الواجهات الخلفية ضمن دورة تطوير التطبيقات عن طريق الجافاسكريبت ودلك ايضا بالموازاة مع احد الدورات الموجودة على اليوتيوب دون دكر اسم صاحبها

    لكن لدي مشكل هو انني افهم الدروس والاكواد وافهم دور كل خاصية لكن عند بداية التطبيق على التمارين البرمجية المتعلقة بنفس الدروس اجد نفسي غير قادر على حلها 

    هادا الامر لم افهمه بتاتا فقد بدات تراودني عدة تساؤلات من قبيل هل انا قادر على تعلم لغة برمجية ام مستواي لا يليق ولا يناسب كي اتعلمها مع العلم انني كنت قد درست دورة تطوير واجهات المستخدم وقمت باجتياز الامتحان وحصلت على الشهادة

    لكن الان الامور مختلفة كثيرا وبدات اشعر بالاحباط نوعا ما

    هل من احد لكي يساعدني في هاته المعضلة 

    جزاكم الله خيرا 

×
×
  • أضف...