أجهزة الكمبيوتربرمجة

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

في هذه المقالة سوف ننظر في جافا سكريبت مجموعة، مكوناته. جافا سكريبت غير مثالية الموجهة سيناريو لغة مصممة للبرمجة. في الواقع، فإنه ينفذ اللغة ECMAScript (معيار ECMA-262).

جافا سكريبت؟ يتم استخدامها كلغة جزءا لا يتجزأ من أجل تحديد مسار البرنامج إلى تطبيق الموضوع. ويمكن العثور عليها في المتصفح: يتم استخدامه هناك كما لغة البرمجة التي تعطي صفحات الويب التفاعلية.

الميزات المعمارية الرئيسية لهذا المنتج هي دينامية وضعف الكتابة، ذاكرة مثالية avtoupravlenie ظائف البرمجة التي هي كائنات من التصريف الأول.

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

وتجدر الإشارة إلى أن جافا سكريبت - علامة تجارية مسجلة لشركة أوراكل شركة مجموعة.

ما هو صفيف؟

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

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

إنتاج الصلب

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

  • فار = فارغة []؛ // مجموعة فارغة.
  • numers فار = [4، 1، 2، 5]. // مجموعة مع خمسة عناصر الرقمية.
  • فار فرق = [1.5، كاذبة، «النص"]؛ // مجموعة مع ثلاثة عناصر من أنواع مختلفة.

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

والطريقة الثانية لإنشاء مصمم مجموعة لاستدعاء صفيف (). أدعوه إلى واحدة من ثلاث طرق:

  • اتصل مصمم بدون وسائط: فار ب - صف جديد (). وهو ينص على إنشاء أي ما يعادل مجموعة فارغة إلى فارغة الحرفي [].
  • المصمم والمحددة لمعالجة صراحة ن قيمة المكونات مجموعة: فار ب = صفيف جديد (1، 3، 5، 8، "الخط»، صحيح). في هذه الحالة، قدم مصمم قائمة الحجج، التي تتحول إلى مكونات مجموعة جديدة. مكتوبة الحجج لمجموعة هو الموقع حيث المشار إليها.
  • تحديد نطاق القيم مزيد من تعيين. يتم ذلك عن طريق تحديد مجموعة الكشف عن عدد المغلقة بين قوسين: فار ب = صفيف جديد (5). هذه الطريقة في الكشف ينطوي على مجموعة وتخصيص المبالغ المطلوبة من المكونات (كل منها على النحو الوارد غير معروف) مع إمكانية تعيين قيم في العرض. وعادة ما يستخدم هذا النموذج إلى ما قبل تخصيص جافا سكريبت مصفوفة التي يعرف مقدما طول.

تسجيل وقراءة وإضافة تفاصيل صفيف

الحصول على مكونات المصفوفة قد يكون عن طريق المشغل []. بالمناسبة، كافة المكونات في جافا سكريبت، بدءا من الصفر، يتم ترقيم. للحصول على العناصر الضرورية، تشير إلى رقم في أقواس معقوفة. وكقاعدة عامة، يمكن تغيير البنود. A جافا سكريبت لتضاف إلى مجموعة، فإنه يكفي لتعيين قيمة جديدة.

وتجدر الإشارة إلى أنه في جافا سكريبت صفائف يمكن تخزين أي عدد من العناصر من أي نوع.

طول المصفوفة

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

لعرض العنصر الأخير من صفيف، يمكنك استخدام الخاصية طول.

الجزء الأخير هو مؤشر واحد أقل من حجم المصفوفة. بعد العد التنازلي يبدأ دائما من نقطة الصفر. أوه، هذا جافا سكريبت! طول مجموعة يعتمد على العدد الدقيق للعناصر. لذلك، إذا كنت لا تعرف كم ينبغي أن يكون هناك، ولكن عليك أن أنتقل إلى العنصر الأخير للمجموعة، فإنه من الضروري تطبيق السجل: v.length - 1.

تكرار مجموعة من أجزاء

في كثير من الأحيان، يتم استخدام خاصية طول لتكرار عبر مجموعة من أجزاء في دورة:

  • الفواكه فار = [ «الفراولة"، "الخوخ"، "تفاحة"، "الموز"]؛
  • ل(فار I = 0؛ ط
  • دوكمنت (الفواكه [أنا] + «...»).

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

كما تستخدم دورة أحيانا إلى تهيئة المكونات.

الزيادة ومجموعة اقتطاع

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

ببساطة مسح مجموعة على النحو التالي: foo.length = 0.

إذا كانت نوعية طول المدى أكبر من قيمته الحالية، في نهاية المصفوفة سوف يكون، والمكونات مجهولة الهوية الجديدة، الأمر الذي سيزيد ذلك إلى الحجم المطلوب.

حذف مجموعة من التفاصيل

يشير المشغل حذف عنصر من مجموعة إلى غير معروف، ولكنها لا تزال موجودة في هذه الحالة. إذا كنت ترغب في إزالة عنصر جافا سكريبت لمجموعة بحيث الجزء المتبقي تحول إلى المكان الشاغر، تحتاج إلى استخدام واحدة من الطرق للتنبؤ مجموعة. طريقة Array.shift () يزيل العنصر الأول، البوب () - عنصر إنهاء ولصق طريقة () - عنصر واحد أو في أي مكان تتراوح مجموعة.

المصفوفات متعددة الأبعاد

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

صفائف النقابي

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

انتاج مجموعة

والآن سوف ندرس في نظام جافا سكريبت؟ انتاج مجموعة إلى مربع الحوار (على الشاشة)، فضلا عن القيم إخراج عناصر المصفوفة.

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

تنظيف

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

  • فار myArray = [1، 2، 5، 23].
  • myArray.length = 0.

ويبين الجدول التالي تنفيذ وجهة واضحة ()، في هذا الإطار، جافا سكريبت النموذج:

  • واضحة: وظيفة () {؛
  • this.length = 0؛
  • العودة هذه.
  • }.

إضافة وإزالة مكونات

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

  • عند إضافة خصائص غير معروفة الرقمية ط، إذا كان طول يساوي أو أقل مما كنت، طول مصمم على أن يكون ط + 1.
  • عند تغيير نوعية طول لتنفيذ الخطوات التالية: إذا كانت القيمة التي تم تعيينها أقل من صفر، ثم يلقي RangeError. يزيل كل مؤشرات لجودة العددية التي هي مساوية لطول جديد، وأكبر من.

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

طرق unshift، والتحول، والبوب، ودفع

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

التحركات العملية لدفع نهاية البنود مجموعة المرسلة. يعطي بوب العودة عملية المكون النهائي ويزيل ذلك.

عموما في Internet Explorer تحت النسخة الثامنة unshift يمكن العودة غير معروف، في المتصفحات الأخرى - قيمة جديدة من طول. بحيث قيمة الإرجاع من unshift الأفضل أن لا أمل.

إضافة وإزالة أجزاء في وسط مجموعة

إذا كنت ترغب في حذف مجموعة من جافا سكريبت، فعليك أن تأخذ؟ ومن المعروف أن الأسلوب لديه Array.prototype.splice توقيع لصق.

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

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

في أبسط تجسيد، إذا كان ذلك ضروريا لإزالة عنصر مع مؤشر ط، مجموعة تحتاج إلى طلب طريقة لصق مع المعلمات ط و 1.

من حيث المبدأ، الخيار الثاني في طريقة لصق ليست إلزامية، ولكن سلوك الدالة مع وسيطة واحدة لكل متصفح مختلف.

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

يتم التخلص من أي عنصر واحد في IE. الاختلاف الأول هو المستحيل التنبؤ بسلوك دار الأوبرا - سيتم حذف عنصر واحد مع بداية مؤشر - 1. ولذلك فمن الضروري دائما في هذا الأسلوب لنقل اثنين على الاقل من المكونات.

مفاتيح

وبطبيعة الحال، وتعلم جافا سكريبت، صفائف النقابي، كما ذكر آنفا، يجب أيضا عدم إغفال. هذه هي وجهة نظر مجردة من المعلومات (واجهة لتخزين البيانات)، والذي يسمح لإنقاذ زوج من النموذج "(الرئيسية، القيمة)" وتشغيل إضافة زوج من الدعم، وكذلك الحذف والبحث من زوج المفاتيح:

- FIND (مفتاح).

- INSERT (قيمة المفتاح).

- إزالة (مفتاح).

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

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

عموما، من حيث واجهة، مجموعة النقابي الذي يعتبر مجموعة بسيطة، حيث كمؤشرات يمكن تطبيقها ليس فقط أرقام صحيحة ولكن الأنواع الأخرى والقيم - على سبيل المثال، خطوط.

بالمناسبة، يتم التعامل مع الدعم لمثل هذه المصفوفات هناك العديد من لغات البرمجة عالية المستوى مثل PHP، بيرل، روبي، بيثون، تى سى ال، وجافا سكريبت وغيرها. بالنسبة للغات التي ليس لها المدمج في الأدوات للعمل مع صفائف النقابي، إنشاء عدد هائل من انجازاتهم في شكل المكتبات.

مثال لمجموعة النقابي يمكن أن تكون بمثابة دليل الهاتف. في هذا التجسيد، يتم تعيين قيمة "F. IO + ه "، ومفتاح - رقم الهاتف. واحد رقم الهاتف هو سيد واحد، ولكن شخص واحد يمكن أن تمتلك أرقام متعددة.

تمديد المرتبطة

وتجدر الإشارة إلى أن الملحقات الأكثر شهرة وتشمل ما يلي:

  • EACH - «نزهة» على جميع يحفظ أزواج.
  • واضح - لحذف كافة الإدخالات.
  • MIN - للعثور على زوج مع أدنى قيمة المفتاح.
  • MAX - للعثور على زوج مع أكبر قيمة المفتاح.

في الحالتين الأخيرتين تحتاج إلى على مفاتيح أشار تأثير المقارنة.

تحقيق صفائف النقابي

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

تنفيذ أشهرها، على أساس البحث الاشجار المختلفة. على سبيل المثال، في غرفة القراءة STL C ++ لغة المقطورات خريطة نموذجية يتم تنفيذها على أساس من الأسود والماهوجني. في روبي، وأساليب، تى سى ال، بيثون يستخدم نوع واحد من الجداول التجزئة. هناك تطبيق آخر.

بشكل عام، كل تطبيق مزاياه وعيوبه. ومن المهم أن جميع العمليات الثلاث تحققت في المتوسط، وفي أسوأ فترة من الوضوح حول (سجل ن)، حيث n - العدد الحالي لانقاذ قدم المساواة. لأشجار بحث منسقة (بما في ذلك الأشجار السوداء والحمراء)، وهذا الشرط هو راض.

ومن المعروف أن في تطبيقات تستند إلى جداول التجزئة، يتم تعريف متوسط الوقت كما D (1)، وهو أفضل مما كانت عليه في الإجراءات على أساس البحث الاشجار. بالطبع، هذا لا يضمن الحصول على سرعة عالية الأداء من عمليات منفصلة: INSERT وقت العمل في أسوأ الحالات، كما تدل O (ن). يتم تنفيذ عملية INSERT لفترة طويلة عندما تصل نسبة واجب أعلى نقطة، وهناك حاجة لإعادة بناء مؤشر جدول التجزئة.

بالمناسبة، هذه البيانات التجزئة السيئة التي على هذا الأساس فإنه من المستحيل لتنفيذ الإجراء الإضافي السريع MAX، MIN، وخوارزمية للبحث عن يحفظ أزواج في ترتيب تنازلي أو تصاعدي مفاتيح.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ar.atomiyme.com. Theme powered by WordPress.