مصفوفة جافا سكريبت لتخزين عدد غير محدود من المتغيرات
جافا سكريبت هي لغة المتصفح ، وبالتالي ليس كلالمهمة تحتاج إلى المتغيرات الخاصة بها ، والمصفوفات والأشياء. في العديد من الحالات ، يكفي استخدام DOM (نموذج كائن المستند). ولكن حتى في مثل هذه الحالات، والوصف الصحيح للبيانات المستخدمة دائما يجعل البرنامج، والصقل سهلة الاستخدام ولاحق الكمال.
الكلمات مهمة ، ولكن عند تسمية البرنامج ،هذا هو عرضة للاستخدام والتغيير ، فمن المناسب للحد من الكلمات "البيانات" و "المتغيرات". حسنا وماذا سيكون - جافا سكريبت صفيف ، كائن أو ببساطة عدد صحيح - يعتمد على مهمة ، على نحو أدق من مكان معين في ذلك.
رمز ومنطق البيانات
يتم استخدام المبرمجين لمعالجة البيانات. كان لا يزال هناك متغيرات في مجموعة واسعة من التمثيلات (سلاسل ، رموز ، أرقام ، تواريخ ...) ، كقاعدة ، تم وضع المصفوفات و (العقدين الأخيرين) الكائنات بشكل منفصل.
في مرحلة ما من الزمن ، الكتابة الصارمةأصبحت البيانات بقايا ، والآن في كل لغة حديثة ، لا يمكن لهذا أن يغير المحتوى فحسب ، بل أيضًا النوع. جيد أو سيئ ، سيتبين ، لكن الكتابة الصارمة لها سماتها الإيجابية. ومع ذلك ، إذا حدث هذا ، فلماذا لا "نمت" العملية برمتها؟
بالمعنى الدلالي ، هذا هو ، خارجبناء الجملة ، أي متغير له قيمة. وتتغير لأي حالة من الأشياء. تسلسل التغييرات هو بالفعل مقدار من حيث جافا سكريبت هو مصفوفة عنصر.
وبعبارة أخرى ، إذا قرر المبرمج عدم إرفاقهالقيم إلى نوع متغير ووضع اللغة على التحويل الصحيح وفي الوقت المناسب للأنواع ، فلماذا لا تبسط على الإطلاق: هناك فقط البيانات ، حسنا ، أي نوع من البيانات سيكونون عند نقطة التطبيق-رقم أو سلسلة أو مصفوفة أو كائن- هذا هو رمز الحل. حتى أكثر دقة: يجب أن يحدد هذا في حد ذاته ما يمكن عمله به وكيف.
بيانات بسيطة ونحو
يتم تمثيل المتغيرات البسيطة بأنواع مختلفة. يتم تنفيذ عمليات تحويل النوع تلقائيًا عند الضرورة.
في هذا المثال ، وصفنا متغير بسيط s ، فيوالتي ستشكل نتيجة العمل مع جافا سكريبت Array aCheck. يتم وصف المتغير i مباشرة في سير عمل aCheck. هنا تمثل عناصر المصفوفة (التي تم إنشاؤها باستخدام بنية دفع جافا سكريبت Array) ثلاث قيم من نوع مختلف. تقوم الدورة الأولى بإخراج أسماء الأنواع في السلسلة s ، والثانية - القيم الفعلية. يتم تنفيذ تحويل النوع تلقائيًا.
حول عدد العناصر في المصفوفات
في JavaScript ، لا تكون المصفوفة صفيفًا اقترانًا. يتم تنفيذ الوصول إلى العناصر بواسطة مفاتيح رقمية ، الحد الأقصى لعدد العناصر هو 232، ولكن لا ينبغي أن تكون تجربة مع كميات الحد من العناصر.
تحتوي الخوارزمية الجيدة دومًا على كمية واضحة من البيانات ، ويتم إدخال بنية طول JavaSscript Array في البنية وليس على الإطلاق للتحكم في حجم الصفيف في سياق محتوياته.
قيمة aCheck.الطول ليس دائما العدد الحقيقي للعناصر. في JavaScript ، يمكن أن يحتوي المصفوفة على ما تم إرساله وما تم إرساله هناك ، ولكن لمعرفة مقدار ذلك ، يجب عليك أحيانًا العمل بجد.
في هذا المثال ، يزيد التعبير aCheck [5] الصفيف إلى ستة عناصر. نأمل ، فإن وظيفة طول تعطي قيمة 4 ، ليس له ما يبرره.
صفائف الارتباط
يمكن أن تكون صفيف جافا سكريبت رسميًا عاديًا فقط ، أي أن الوصول إلى العناصر يتم بواسطة فهارس رقمية. ومع ذلك ، في الواقع ، يمكنك استخدام الأفكار الترابطية.
مشكلة فرز سلسلة بسيطة جداً وشائعةالجدول على الأعمدة يمكن حلها عن طريق صفيف الجمعيات. تعني النقطة في الدائرة المجاورة لاسم العمود عدم وجود ترتيب ، ويكون السهم للأعلى بترتيب تنازلي ، ويكون السهم لأسفل بترتيب تصاعدي. النقر على اتجاه التغييرات العمود (متغير للواقع في جافا سكريبت: ترتيب مصفوفة).
في هذا المثال ، في تشكيل cSortCols تتشكلفرز الاتجاهات لكل عمود (S ، C ، W ، ...). قيم الاتجاهات هي فقط u، d. في البناء ، يتم تجميع كل شيء في سطر واحد (رمز العمود واتجاه الفرز). تنظر هذه الحلقة في جميع عناصر المصفوفة ، ولا تحتاج إلى استخدام الدالة Length Array JavaScript.
خلق وترتيب مصفوفة في جافا سكريبت
الممارسة الجميلة هي كتابة "var xMass = []؛" أو"var yArr = {}؛" في الحالة الأولى ، سيتم تحديد مجموعة عادية ، في الحالة الثانية - النقابي. يمكنك أيضًا استخدام خيار JavaScript New Array () ، ولكن عادةً ما يتم استخدام هذا التصميم لأغراض أخرى ، خاصةً للعمل مع الكائنات.
يمكن ملء الصفيف الذي تم إنشاؤه على الفورالمتغيرات ، ولكن ، كقاعدة عامة ، التعبئة الفعلية والتعامل مع مجموعة في ديناميات ، أثناء تنفيذ البرنامج. إذا كنت بحاجة إلى الفرز ، فيمكنك استخدام بنية جافا سكريبت لصفيف الفرز ، وهو أمر غير مرن ، ولكنه يسمح لك بالتحكم في العملية من خلال وظيفتك الخاصة.
الاستدعاء: arr.sort () يؤدي إلى الفرز بترتيب رموز الجدول ASCII. الدالة العكسية هي التقليب للعناصر: arr.reverse (). هذه الدالة عكس ترتيب عناصر الصفيف.
في كلتا الحالتين ، كلمة arr هي مصفوفة. في الحالة الأولى ، يمكنك استخدام وظيفة الفرز الخاصة ، أي استدعاء arr.sort (myfunc (a، b)) سوف تستدعي الدالة الخاصة myfuct ، والتي يجب أن تعطي النتيجة بناءً على البيانات: a و b. إذا كان الأول أقل من الثانية ، ثم -1 ، إذا كان على العكس ، ثم 1 ، وإذا أ = ب ، ثم 0. هنا يتم تحديد معيار المقارنة من قبل مبرمج في وظيفة myfunc.
فكرة العنصر النشط
يمكن استدعاء الدالة أثناء عملية الفرزتنفيذ مختلف الإجراءات. من وجهة نظر التصميم الذي يتم تطبيقه ، فإنه لا يتطلب الاستجابة لمعلمات الإدخال ، والنتيجة ليست فقط ثلاثة أرقام -1 ، 1 و 0. بمجرد تطبيقه في صفيف دوري لكل عنصر ، يمكنه إعادة بناء الصفيف.
إذا كنت تتخيل أن المصفوفة هي معنى محدد ، بنية بيانات محددة ، فإن مصفوفة جافا سكريبت تصبح متغيرًا بمحتوى متغير.
إذا أخذنا أساس استخدام أول أوالعنصر الأخير من الصفيف كمحتوى ، ثم تنفيذ وظيفة الفرز يمكن تحويل الصفيف بحيث يصبح العنصر الأول / الأخير عنصر آخر ، كما هو مطلوب من شروط المهمة.
قد تسمح هذه الفكرة بإعادة بناء الخوارزميةحلول بهذه الطريقة ، على وجه الخصوص ، لن تكون هناك حاجة لاستخدام المنشآت إذا () {} آخر {} والتبديل () {case "": ... ؛ case "": ...؛ ...}.
معالجة محتويات صفيف ، يمكنك نقل العناصر داخله ، وبالتالي تغيير الوظائف الخارجية التي يمكن الحصول عليها من خلال العنصر الأول أو الأخير.
مصفوفة JavaScript: الاستخدام غير المنطقي
كل لغة جيدة في أنها لا تسمح فقطتغيير بنية ومحتوى البيانات ، ولكن أيضًا الكود الفعلي. فكرة التعامل مع متغير على أنه تجريد ، وهذا هو ، في البداية لا يوفر حالة نموذجه ، يفتح آفاقا جديدة.
بدءًا من التجريد ، يسمح لك متغير أو مصفوفة أو كائن بتمثيل عملية معالجة البيانات كدالة لهذه البيانات ، وفي الديناميكيات.
على سبيل المثال ، قراءة النص ، يمكنك وصف هذا"نص" ، والتي سيتم تقسيمها إلى جمل - المعيار "نقطة" (في السياق ، وهذا هو ، مع الأخذ في الاعتبار بناء جملة الجمل المقبولة). سيتم تقسيم الجمل إلى عبارات (في السياق ، والفاصلة والبناء المقابل). الكلمات والحروف التالية.
النتيجة: يمكنك العمل على مستوى النصوص والجمل والكلمات. في كل مستوى ، يمكنك إنشاء وظائف "التفرد" التي تسمح لك بالبحث عن مشابه أو مماثل. يمكنك إنشاء وظائف لتطبيق الجمل والعبارات على البيانات الأخرى.
لم تكن البرمجة الحديثة عقيدة طويلة ، ولكنحقيقة أن الإنشاءات النحوية والتجربة المتراكمة التي نشأت على مدى العقود الماضية تفتح آفاقاً جديدة لا تتوخى من قبل مطوري اللغات - ولكن يجب اكتشافها واستخدامها.