المصفوفات هي بنية بيانات تقوم بتخزين مجموعة مرتبة من العناصر. في JavaScript، يتم تصنيف المصفوفات كنوع خاص من الكائنات ويمكنها تخزين الأرقام أو السلاسل أو الكائنات أو المصفوفات الأخرى. يتم وضع العناصر الموجودة في المصفوفة بين قوسين مربعين [ ] وتستخدم فهرسًا صفريًا. الفهرس الصفري يعني أن العنصر الأول في المصفوفة سيكون له فهرس 0، والعنصر الثاني سيكون له فهرس 1، وهكذا.
const names = ["David", "Hannah", "William"]; console.log(names[0]); // returns the first element // returns "David" console.log(names[1]); // returns the second element // returns "Hannah" console.log(names[2]); // returns the third element // returns "William"
يمكن إضافة عنصر جديد إلى مصفوفة عن طريق تعيين قيمة لفهرس فارغ.
names[3] = "Eric"; console.log(names); // returns ["David", "Hannah", "William", "Eric"]
يمكن تعديل العناصر الموجودة في المصفوفة عن طريق إعادة تعيين قيمة جديدة إلى فهرس موجود.
names[1] = "Juniper"; console.log(names); // returns ["David", "Juniper", "William", "Eric"]
يمكن أيضًا تعديل المصفوفات أو معالجتها بطرق المصفوفة مثل "push" و"pop" و"unshift" و"shift" و"slice" و"splice".
يأخذ أسلوب "الدفع" عنصرًا واحدًا أو أكثر كوسيطات، ويضيف العناصر إلى نهاية المصفوفة، ويعيد طول المصفوفة المعدلة.
names.push("Bob"); // returns 5 console.log(names); // returns ["David", "Juniper", "William", "Eric", "Bob"]
الطريقة 'pop' لا تأخذ أي وسيطات، وتزيل العنصر الأخير من المصفوفة، وترجع العنصر المحذوف.
names.pop(); // returns "Bob" console.log(names); // returns ["David", "Juniper", "William", "Eric"]
يأخذ الأسلوب "unshift" عنصرًا واحدًا أو أكثر كوسيطات، ويضيف العناصر إلى بداية المصفوفة، ويعيد طول المصفوفة المعدلة.
names.unshift("Jack", "Jane"); // returns 6 console.log(names); // returns ["Jack", "Jane", "David", "Juniper", "William", "Eric"]
الطريقة 'shift' لا تأخذ أي وسائط، وتزيل العنصر الأول من المصفوفة، وترجع العنصر المحذوف.
names.shift(); // returns "Jack" console.log(names); // returns ["Jane", "David", "Juniper", "William", "Eric"]
تأخذ الطريقة "slice" وسيطتين اختياريتين (startIndex وendIndex) وترجع مصفوفة جديدة تحتوي على العناصر من startIndex إلى endIndex للمصفوفة الأصلية، ولكن لا تتضمنها.
إذا تم حذف startIndex، يتم استخدام 0.
إذا تم حذف endIndex، فسيتم استخدام طول الصفيف. يمكن استخدام أرقام الفهرس السالبة للعد التنازلي من نهاية المصفوفة.
names.slice(1, 3); // returns ["David", "Juniper"] names.slice(3); // returns ["Juniper", "William", "Eric"] names.slice(-2, 1); // returns ["William", "Eric", "Jane"] names.slice(); // returns ["Jane", "David", "Juniper", "William", "Eric"]
تأخذ طريقة "splice" وسيطة واحدة أو أكثر (startIndex، وdeleteCount، و element1، و element2، ...) وتقوم بإرجاع مصفوفة جديدة تحتوي على جميع العناصر التي تمت إزالتها. من startIndex، يتم حذف عدد العناصر المحذوفة وستتم إضافة وسيطات العناصر التالية إلى المصفوفة بدءًا من startIndex. إذا تم حذفdeleteCount، فسيتم حذف كافة العناصر من startIndex إلى نهاية المصفوفة. إذا تم حذف وسيطات العنصر، فلن تتم إضافة أي عناصر.
names.splice(0, 1, "Joe", "Alex"); // returns ["Jane"] console.log(names); // returns ["Joe", "Alex", "David", "Juniper", "William", "Eric"] names.splice(1, 4); // returns ["Alex", "David", "Juniper", "William"] console.log(names); // returns ["Joe", "Eric"] names.splice(0, 0, "Bob", "Frank", "Maria") // returns [] console.log(names); // returns ["Joe", "Bob", "Frank", "Maria", "Eric"]
نظرًا لأن "push" و"pop" و"unshift" و"shift" و"splice" تعدّل المصفوفة الأصلية، فقد تم تصنيفها على أنها طرق مدمرة. طريقة "الشريحة" تترك المصفوفة الأصلية سليمة، لذلك يتم تصنيفها على أنها غير مدمرة.
لإضافة عناصر إلى مصفوفة أو نسخها بشكل غير مدمر، يمكن استخدام عامل الانتشار. يقوم عامل الانتشار بنشر مصفوفة في عناصرها.
const array = [1, 2, 3]; const newArray = [0, ...array, 4, 5]; // ...array spreads [1, 2, 3] into 1, 2, 3 console.log(newArray); // returns [1, 2, 3, 4, 5]
بدون عامل الانتشار، سيتم دمج المصفوفة الأصلية داخل المصفوفة الجديدة.
const array = [1, 2, 3]; const newArray = [0, array, 4, 5]; console.log(newArray); // returns [0, [1, 2, 3], 4, 5];
تستدعي أساليب المصفوفة التكرارية دالة مقدمة في كل عنصر في مصفوفة وترجع قيمة أو مصفوفة جديدة. يتم استدعاء الدالة المقدمة باستخدام ثلاث وسائط: العنصر الحالي، وفهرس العنصر الحالي، والمصفوفة الأصلية التي تم استدعاء الطريقة عليها.
function callbackFunction (currentElement, currentIndex, originalArray) { // function body }
بعض الأمثلة على أساليب المصفوفة التكرارية هي: 'find' و'filter' و'map' و'reduce'.
يأخذ أسلوب "البحث" دالة كوسيطة ويعيد العنصر الأول في المصفوفة الذي يستوفي شروط الوظيفة.
const numbers = [5, 10, 15, 20, 25]; numbers.find(number => number > 15); // returns 20;
طريقة "الفلتر" مشابهة لطريقة "البحث"، ولكنها تقوم بدلاً من ذلك بإرجاع مصفوفة من كافة العناصر التي تلبي شروط الوظيفة المحددة.
const numbers = [5, 10, 15, 20, 25]; numbers.filter(number => number > 15); // returns [20, 25];
يُرجع الأسلوب 'map' مصفوفة جديدة مع نتائج استدعاء الوظيفة على كل عنصر في المصفوفة الأصلية.
const numbers = [1, 2, 3, 4, 5]; numbers.map(number => number * number); // returns [1, 4, 9, 16, 25]
تأخذ طريقة "التقليل" دالة وقيمة أولية كوسيطة. تتلقى الدالة المتوفرة أربع وسائط: المركب، والقيمة الحالية، والفهرس الحالي، والمصفوفة الأصلية. القيمة الأولية المقدمة هي قيمة المجمع للعنصر الأول في المصفوفة. يتم استخدام نتيجة الدالة لكل عنصر كقيمة المركب للعنصر التالي في المصفوفة. إذا لم يتم توفير قيمة أولية، فسيتم تعيين المجمع على العنصر الأول من المصفوفة ويتم استدعاء وظيفة رد الاتصال بدءًا من العنصر الثاني.
const numbers = [1, 2, 3, 4, 5] numbers.reduce(((acc, number) => acc number), 0); // returns 15
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3