3 أشياء لا تعرفها عن صفيف JavaScript
المصفوفات هي ميزة تستخدم على نطاق واسع من لغات البرمجة ؛ هم انهم المتغيرات الخاصة التي يمكن استخدامها لتخزين قيم متعددة في نفس الوقت. ومع ذلك ، عندما يتعلق الأمر بجافا سكريبت ، وبسهولة تعلمها ، فهناك دائمًا المزيد للاستكشاف.
في هذا المنشور ، سوف نلقي نظرة على ثلاث ميزات أقل شهرة ولكنها مهمة في صفائف JavaScript التي ربما لم تكن قد عرفتها من قبل.
1. أضف خصائص مخصصة إلى المصفوفات
إذا كنت تريد البحث في الإنترنت بحثًا عن تعريف شامل لصفيف JavaScript ، فستجد أن كل مصدر تقريبًا بدون فشل سوف يعرض الصفيف على أنه هل حقا هو, شيء.
في الواقع ، فإن كل شيء نتعامل معه تقريبا في JavaScript سوف اتضح أن يكون كائن. هناك نوعان من أنواع البيانات في JavaScript, البدائيون و شاء, لكن يتم اختتام دائما البدائية داخل الأشياء.
صفيف ، وظيفة ، تاريخ ، وما هي كائنات جافا سكريبت محددة مسبقا التي لديها المدمج في الأساليب والخصائص الخاصة بهم بناء الجملة الموحدة.
صفائف جافا سكريبت يمكن أن يكون ثلاثة أنواع مختلفة من الخصائص:
- مؤشرات مجموعة هي أيضا خصائص
- المدمج في الخصائص
- خصائص مخصصة يمكنك إضافة بنفسك
الأولى والثانية أكثر شهرة ، يمكنك استخدامها كل يوم ، ولكن دعونا نراهم بسرعة قبل القفز في كيف يمكنك إضافة الخاصية المخصصة الخاصة بك إلى مجموعة.
المؤشرات كخصائص
صفيف جافا سكريبت استخدام بناء جملة قوس مربع, مثل var ary = ["orange"، "apple"، "lychee"]؛
.
مؤشرات عناصر الصفيف هي في الأساس الخصائص أين ال أسماء الممتلكات هي أعداد صحيحة غير سالبة دائمًا.
ال زوج عنصر الفهرس من مجموعة مماثلة ل زوج القيمة الرئيسية من كائن.
تعد المؤشرات ميزة فريدة لكائن Array ، وبخلاف الخصائص المضمنة الأخرى ، يمكن أن تكون كذلك تعيين مع بناء جملة الأقواس وحدها, مثل آري [3] = "خوخ" ؛
.
المدمج في خصائص
صفائف لديها أيضا المدمج في الخصائص, مثل array.length
. ال الطول
خاصية تحمل قيمة عدد صحيح يدل على طول مجموعة.
بشكل عام ، يمكن العثور على الخصائص المدمجة بشكل متكرر في كائنات JavaScript المحددة مسبقًا مثل المصفوفات. جنبا إلى جنب مع الأساليب المضمنة ، فإنها تساعد تخصيص الكائنات العامة بحيث تكون الكائنات مناسبة لاحتياجات مختلفة.
المدمج في الخصائص يمكن الوصول إليها مع أي من object.key
أو ال يعترض [ "مفتاح"]
بناء الجملة. لذلك يمكنك أيضا الكتابة آرى [ "طول"]
للوصول إلى طول مجموعة.
إنشاء خصائص مخصصة لكائن الصفيف
الآن ، دعنا نتحدث عن إضافة الممتلكات الخاصة بك إلى صفائف. المصفوفات هي كائنات محددة مسبقًا تخزن أنواعًا مختلفة من القيم في مؤشرات مختلفة.
عادة لا توجد حاجة ماسة لإضافة خصائص مخصصة إلى صفيف ؛ هذا أحد أسباب عدم تعليم المبتدئين عادة حول هذه الميزة. في الواقع ، إذا كنت ترغب في التعامل مع صفيف ككائن عادي عن طريق إضافة أزواج قيمة المفتاح إليه ، يمكنك كذلك استخدام كائن عادي لغرضك. ولكن هذا لا يعني أنه لا يوجد حالات خاصة حيث يمكنك الاستفادة من حقيقة أن الصفيف هو كائن ، وذلك بإضافة خاصية مخصصة أو أكثر إليها.
على سبيل المثال ، يمكنك إضافة خاصية مخصصة إلى صفيف يحدد "النوع" أو "الفئة" من عناصره, كما ترون في المثال أدناه.
var ary = ["orange"، "apple"، "lychee"]؛ ary.itemClass = "ثمار" ؛ console.log (ary + "are" + ary.itemClass) ؛ // "برتقال ، تفاح ، ليتشي ثمار"
لاحظ أن الخاصية المخصصة التي تضيفها إلى صفيف هي enumerable, مما يعني أنه سيتم التقاطها بواسطة الحلقات مثل ل ... في
بيان.
2. حلقة من خلال عناصر صفيف
من المحتمل أن تقول "أعرف ذلك بالفعل" ، وهو الأمر الأكثر احتمالًا على الأرجح ، أنت تعرف بالفعل كيفية استعراض عناصر الصفيف. ولكن من الصحيح أيضًا أن قول "حلقة من خلال عناصر الصفيف" هو مجرد تجريد بعض الشيء ، حيث إن ما نجده في الواقع هو مؤشرات مجموعة.
منذ مؤشرات مجموعة تتكون فقط من أعداد غير سالب, نقوم بتكرار قيمة عدد صحيح تبدأ من الصفر وتنتهي بالطول الكامل للصفيف ، ثم نستخدم تلك القيمة المكررة للوصول إلى عنصر الصفيف في فهرس معين.
لكن منذ ECMAScript6 ، هناك طريقة لذلك حلقة مباشرة من خلال قيم مجموعة دون عناء مع المؤشرات ، ويمكن أن يتم ذلك باستخدام ل ... من
عقدة.
في مجموعة ، و ل ... من
سوف حلقة حلقة من خلال عناصر مجموعة في ترتيب المؤشرات, وبعبارة أخرى ، ستهتم بالتكرار على المؤشرات والحصول على قيمة مجموعة موجودة في مؤشر معين. هذه الحلقة مثالية إذا كنت ترغب فقط في تنفيذ كل عناصر الصفيف والعمل معها.
var ary = ["orange"، "apple"، "lychee"]؛ من أجل (let item of ary) console.log (item) ؛ // "برتقالي" ، "تفاحة" ، "ليتشي"
للمقارنة ، مع العادية إلى عن على
حلقة ، نحصل على المؤشرات بدلاً من القيم كإخراج.
var ary = ["orange"، "apple"، "lychee"]؛ لـ (عنصر var = 0 ؛ عنصر < ary.length; item++) console.log(item); // 0, 1, 2
3. عدد العناصر ليس طوله
عادة ، عندما نتحدث عن طول مجموعة, نعتقد أنه إما عدد القيم التي تحتفظ بها المصفوفة ، أو الطول الذي قدمناه للصفيف يدويًا. لكن في الواقع ، يعتمد طول الصفيف على أكبر مؤشر موجود بداخله.
الطول هو خاصية مرنة جدا. سواء أكنت قد حددت بالفعل طول المصفوفة مسبقًا أم لا ، إذا واصلت إضافة قيم إلى المصفوفة وطولها يستمر في الزيادة وفقا لذلك.
فار آري = [] ؛ ary.length = 3؛ console.log (ary.length)؛ // 3 ary [5] = "abcd"؛ console.log (ary.length)؛ // 6
في المثال أعلاه ، يمكنك أن ترى أنني أعطيت المصفوفة قيمة واحدة فقط في الفهرس 5 ، ويصبح الطول 6. الآن ، إذا كنت تعتقد أنه بإضافة قيمة في الفهرس 5 ، فإن المصفوفة تنشئ مؤشرات من 0 إلى 4 تلقائيًا ، ثم افتراضك غير صحيح. هناك حقا لا توجد مؤشرات موجودة من 0 إلى 4 في هذه المجموعة. يمكنك التحقق من ذلك باستخدام في
المشغل أو العامل.
فار آري = [] ؛ ary.length = 3؛ console.log (ary.length)؛ // 3 ary [5] = "abcd"؛ console.log (ary.length)؛ // 6 console.log (0 in ary)؛ // خاطئة
المصفوفة آرى
هو ما نسميه أ مجموعة "متفرق", مجموعة حيث المؤشرات لا يتم إنشاؤها بشكل مستمر, و لديك ثغرات. عكس مجموعة "متفرق" هو مجموعة "كثيفة" حيث توجد مؤشرات باستمرار في الصفيف ، وعدد العناصر هي نفسها الطول
.
ال الطول
الملكية هي أيضا قادرة على اقتطاع مجموعة, التأكد من وجود أعلى مؤشر موجود في المجموعة دائمًا أقل من نفسه, مثل الطول
هو دائما أكبر عدديا من أعلى مؤشر افتراضيا.
في المثال أدناه ، يمكنك أن ترى كيف نفقد العنصر في الفهرس 5 من خلال تقليل الطول
من آرى
مجموعة مصفوفة.
فار آري = [] ؛ ary.length = 3؛ console.log (ary.length)؛ // 3 ary [5] = "abcd"؛ console.log (ary.length)؛ // 6 ary.length = 2؛ console.log (ary.length)؛ // 2 console.log (ary [5]) ؛ // غير محدد
قراءة متعمقة
- 10 مصطلحات JavaScript يجب أن تعرفها الآن
- 4 - ليست شائعة جدا ولكن من المفيد جافا سكريبت البيانات يجب أن تعرفه
- الأمثل كود مع JS تلميح - أداة ل linting جافا سكريبت