يعد قلب المصفوفة إحدى العمليات الأساسية عند العمل مع معالجة البيانات في جافا سكريبت. يمكن أن يكون هذا مفيدا عندما تحتاج إلى تغيير ترتيب عناصر المصفوفة أو عكسها. هناك عدة طرق في جافا سكريبت تسمح لك بقلب مصفوفة وفقا للمتطلبات المطلوبة.
واحدة من أسهل الطرق لقلب المصفوفة هي استخدام الطريقة العكسية () ، المضمنة في كائن صفيف مضمن. تعكس هذه الطريقة ترتيب عناصر المصفوفة. وهكذا ، يصبح العنصر الأخير هو الأول ، ويصبح العنصر قبل الأخير هو الثاني ، وهكذا. من المهم ملاحظة أن الطريقة العكسية() تعدل المصفوفة نفسها ولا تنشئ واحدة جديدة.
وهناك طريقة أخرى لقلب صفيف هو استخدام لحلقة. توفر هذه الطريقة مرونة كبيرة ، لأنها تتيح لك التحكم في كل خطوة وتغيير عناصر المصفوفة حسب تقديرك. للقيام بذلك ، يمكنك استخدام متغيرين – واحد لفهرس العنصر من بداية المصفوفة ، والآخر لفهرس العنصر من النهاية. سيتم تشغيل الحلقة حتى تتقاطع فهارس العناصر. داخل الحلقة ، يجب تبديل العناصر باستخدام متغير مؤقت.
بغض النظر عن الطريقة المختارة ، يعد قلب المصفوفة عملية مهمة ومفيدة عند العمل مع البيانات في جافا سكريبت. كل طريقة من الطرق المقترحة لها مزاياها وعيوبها ، ويتم اختيار أفضل طريقة اعتمادا على الموقف المحدد ومتطلبات المشروع.
- صفائف في جافا سكريبت
- لماذا الوجه المصفوفات?
- الطريقة العكسية ()
- وصف الطريقة
- أمثلة الاستخدام
- الحلقات والتخصيص العكسي
- استخدام الدورات
- استخدام التعيين العكسي
- العودية
- وظيفة العودية
- سؤال وجواب
- كيف يمكنني الوجه صفيف في جافا سكريبت?
- كيف 'عكس ()' طريقة العمل على الوجه صفيف?
- كيف يمكنني الوجه صفيف باستخدام حلقة?
صفائف في جافا سكريبت
يتم ترتيب المصفوفات في جافا سكريبت هياكل البيانات التي تسمح لك لتخزين ومعالجة قيم متعددة في متغير واحد. في جافا سكريبت ، يمكن أن تحتوي المصفوفات على عناصر من أنواع بيانات مختلفة: الأرقام والسلاسل والقيم المنطقية والكائنات وغيرها.
لإنشاء مصفوفة في جافا سكريبت ، يمكنك استخدام المصفوفة الحرفية أو منشئ المصفوفة (). الصفيف الحرفي عبارة عن قائمة بالقيم محاطة بأقواس مربعة ومفصولة بفواصل:
دعونا آر = [1, 2, 3, 4, 5];
دع الأسماء = ["أليس" ، "بوب" ، "تشارلي"];
يسمح لك منشئ المصفوفة() بإنشاء صفائف بأحجام وقيم محددة:
السماح آر = مجموعة جديدة (5) ؛ / / يخلق مجموعة مع خمسة عناصر ، وكلها تساوي غير معرف
السماح أسماء = مجموعة جديدة ("أليس" ، " بوب " ، "تشارلي") ؛ / / يخلق مجموعة مع ثلاثة عناصر ، قيم السلسلة
يتم الوصول إلى عناصر المصفوفة باستخدام الفهارس (بدءا من 0). للحصول على قيمة عنصر ، يجب تحديد الفهرس بين قوسين مربعين بعد اسم الصفيف:
دعونا آر = [1, 2, 3, 4, 5];
وحدة التحكم.سجل (أر [0]) ؛ / / 1
وحدة التحكم.سجل (أر[2]) ؛ / / 3
يوفر جافا سكريبت العديد من الطرق للعمل مع المصفوفات. بعض منهم:
- دفع—) - يضيف عنصرا واحدا أو أكثر إلى نهاية المصفوفة;
- البوب () - يزيل العنصر الأخير من الصفيف ويعيد قيمته;
- التحول () - يزيل العنصر الأول من الصفيف ويعيد قيمته;
- أونشيفت—) - يضيف عنصر واحد أو أكثر إلى بداية المصفوفة;
- لصق () - يعدل محتويات المصفوفة عن طريق إزالة أو استبدال العناصر الموجودة و / أو إضافة عناصر جديدة;
- شريحة () - إرجاع مصفوفة جديدة تحتوي على نسخة من جزء من المصفوفة الأصلية;
- كونكات () - يجمع بين اثنين أو أكثر من المصفوفات في واحد;
- عكس () - عكس ترتيب عناصر الصفيف;
- فرز () - فرز عناصر الصفيف وفقا للمعايير المحددة.
أيضا ، تتوفر الحلقات في جافا سكريبت ، والتي تسمح لك بتجاوز عناصر المصفوفة وتنفيذ عمليات معينة عليها. على سبيل المثال ، ل حلقة:
دعونا آر = [1, 2, 3, 4, 5];
إلى عن على (دعني = 0 ؛ أنا < آر.الطول ؛ أنا {) {
وحدة التحكم.سجل (ر [ط]);
}
المصفوفات في جافا سكريبت هي أداة قوية للعمل مع مجموعات من البيانات. إنها تسمح لك بتخزين ومعالجة ومعالجة عدد كبير من القيم ، مما يجعلها جزءا لا يتجزأ من تطوير تطبيقات الويب.
لماذا الوجه المصفوفات?
يعد قلب المصفوفة إحدى العمليات المفيدة جدا عند العمل مع البيانات. يسمح لك بتغيير ترتيب العناصر في مصفوفة عن طريق تحويلها بترتيب عكسي.
يمكن أن تكون المصفوفات المتقلبة مفيدة في كثير من الحالات:
- تصور البيانات. يمكن استخدام صفيف مقلوب لإنشاء رسوم بيانية أو رسوم بيانية حيث يعكس المحور السيني الترتيب العكسي للبيانات.
- تحسين العمل مع البيانات. في بعض الحالات ، يمكن أن يكون العمل مع صفيف مقلوب أكثر كفاءة ، على سبيل المثال ، عند البحث عن عنصر معين من نهاية الصفيف.
- تغيير ترتيب إخراج البيانات. إذا كنت تعمل مع مصفوفة تحتوي على عناصر مرتبة بترتيب زمني ، فإن قلب المصفوفة يمكن أن يساعدك في إخراج العناصر بترتيب عكسي.
- الخوارزميات وحل المشكلات. في مهام البرمجة ، غالبا ما يكون من الضروري قلب مصفوفة أو الوصول إلى عناصرها بترتيب عكسي.
هناك عدة طرق لقلب مصفوفة في جافا سكريبت ، يمكن تحديد كل منها اعتمادا على متطلبات وأهداف مهمة معينة.
تتضمن الطرق الرئيسية لقلب مصفوفة في جافا سكريبت استخدام الحلقات وطرق الصفيف (على سبيل المثال ، عكس) والوظائف المضمنة الأخرى مثل الخريطة أو تقليل.
من المهم أن تتذكر أنه عند قلب مصفوفة ، نقوم أيضا بتغيير ترتيبها الأصلي ، لذلك عليك توخي الحذر وأخذ هذه الحقيقة في الاعتبار عند العمل مع البيانات.
الطريقة العكسية () هي واحدة من أسهل الطرق لقلب مصفوفة في جافا سكريبت. انها تسمح لك لعكس ترتيب عناصر الصفيف.
لاستخدام الطريقة العكسية () ، يكفي أن نسميها على صفيف:
أرقام كونست = [1, 2, 3, 4, 5];
أرقام.عكس();
وحدة التحكم.سجل (أرقام); // [5, 4, 3, 2, 1]
نتيجة لتنفيذ التعليمات البرمجية ، مجموعة المصدر مع الأرقام [1, 2, 3, 4, 5] سيتم تغييرها إلى [5, 4, 3, 2, 1].
من المهم ملاحظة أن الطريقة العكسية() تعدل المصفوفة الأصلية ، ولا تنشئ مصفوفة جديدة بعناصر مقلوبة. إذا كنت بحاجة إلى حفظ المصفوفة الأصلية ، فمن المستحسن إنشاء نسخة منها قبل استخدام العكس().
تجدر الإشارة أيضا إلى أن الطريقة العكسية() تغير ترتيب العناصر في المصفوفة مباشرة في مكانها ، لذلك ستكون نتيجتها مصفوفة معدلة. إذا كنت تحتاج فقط إلى الحصول على نسخة مقلوبة من المصفوفة الأصلية ، فيمكنك استخدام التقنية التالية:
أرقام كونست = [1, 2, 3, 4, 5];
أرقام معاكسة = أرقام . شريحة ().عكس();
وحدة التحكم.سجل (أرقام عكسية); // [5, 4, 3, 2, 1]
وحدة التحكم.سجل (أرقام); // [1, 2, 3, 4, 5]
في هذا المثال ، نقوم أولا بإنشاء نسخة من المصفوفة الأصلية باستخدام طريقة الشريحة () ، ثم استدعاء الطريقة العكسية () على المصفوفة المنسوخة. وبالتالي ، تظل مصفوفة الأرقام الأصلية دون تغيير ، ويحتوي متغير الأرقام المعكوسة على نسخة مقلوبة من المصفوفة الأصلية.
وصف الطريقة
الطريقة هي وظيفة تؤدي إجراء محددا ويمكن استدعاؤها في مكان آخر من البرنامج. هناك عدة طرق أساسية لقلب مصفوفة في جافا سكريبت.
إحدى الطرق هي استخدام الطريقة العكسية المدمجة (). تعكس هذه الطريقة ترتيب العناصر في المصفوفة الأصلية. على سبيل المثال:
كونست الفواكه = ['التفاح' ، 'الموز' ، 'الكرز'];
الفواكه.عكس();
وحدة التحكم.سجل (الفواكه) ؛ / / ['الكرز' ، 'الموز' ، 'التفاح']
طريقة أخرى هي استخدام حلقة أو حلقة. في هذه الحالة ، نقوم بإنشاء مصفوفة جديدة وننتقل إلى المصفوفة الأصلية بترتيب عكسي ، مع إضافة عناصر إلى المصفوفة الجديدة. على سبيل المثال:
كونست الفواكه = ['التفاح' ، 'الموز' ، 'الكرز'];
كونست عكس الفواكه = [];
ل (اسمحوا لي = الفواكه.الطول-1 ؛ أنا > = 0 ؛ أنا--) {
عكسالفواكه.دفع (الفواكه [أنا]);
}
وحدة التحكم.سجل (الفواكه المعكوسة) ؛ / / ['الكرز' ، 'الموز' ، 'التفاح']
يمكنك أيضا استخدام طريقة تقليل () لقلب المصفوفة. تسمح لك طريقة التخفيض () بتطبيق الوظيفة على المجمع وكل عنصر من عناصر المصفوفة (من اليسار إلى اليمين). في هذه الحالة ، سيكون المجمع عبارة عن مصفوفة ، وستضيف الوظيفة عنصرا إلى المصفوفة بترتيب عكسي. على سبيل المثال:
كونست الفواكه = ['التفاح' ، 'الموز' ، 'الكرز'];
كونست عكسالفواكه = الفواكه.تقليل ((لجنة التنسيق الإدارية ، كور) = > {
لجنة التنسيق الإدارية.أونشيفت (كور);
عودة لجنة التنسيق الإدارية;
}, []);
وحدة التحكم.سجل (الفواكه المعكوسة) ؛ / / ['الكرز' ، 'الموز' ، 'التفاح']
يعتمد استخدام إحدى هذه الطرق على التفضيلات والمهام المحددة للمطور. كل منهم يسمح لك لقلب مجموعة في جافا سكريبت.
أمثلة الاستخدام
فيما يلي بعض الأمثلة التي توضح كيفية قلب مصفوفة في جافا سكريبت باستخدام طرق مختلفة:
- تحتوي صفائف جافا سكريبت على طريقة عكسية مدمجة () توسع ترتيب العناصر في المصفوفة. في المثال التالي ، يتم تطبيق هذه الطريقة على المصفوفة الأصلية:
- وحدة التحكم.سجل (عكسمصفوفة); // [5, 4, 3, 2, 1]
- دع الأصليأراي = [1, 2, 3, 4, 5];
اسمحوا ريفيرداراي = أوريجينالارا.تقليل ((لجنة التنسيق الإدارية, كور) => [كور, ...لجنة التنسيق الإدارية] ، []);
وحدة التحكم.سجل (عكسمصفوفة); // [5, 4, 3, 2, 1]
باستخدام الفرز()
الطريقة ، تقوم طريقة الفرز() بفرز عناصر المصفوفة وفقا لقيمها. في المثال التالي ، نستخدم طريقة الفرز () مع وظيفة المقارنة لعكس ترتيب العناصر في المصفوفة:
دع الأصليأراي = [1, 2, 3, 4, 5];
اسمحوا ريفيرداراي = أوريجينالارا.فرز ((أ ، ب) = > ب-أ);
وحدة التحكم.سجل (عكسمصفوفة); // [5, 4, 3, 2, 1]
هذه ليست سوى بعض الطرق التي يمكنك استخدامها لقلب مصفوفة في جافا سكريبت. اختيار واحد الذي هو الأنسب لمهمة محددة ، والنظر في أداء وقراءة التعليمات البرمجية.
الحلقات والتخصيص العكسي
هناك طريقة أخرى لقلب مصفوفة في جافا سكريبت وهي استخدام الحلقات مع التخصيص العكسي للقيم. واحدة من أكثر الطرق فعالية هي استخدام حلقة.
دعونا آر = [1, 2, 3, 4, 5];
دعونا عكسدر = [];
إلى عن على (دعني = آر.الطول-1 ؛ أنا > = 0 ؛ أنا--) {
عكس.دفع (آر [أنا]);
}
وحدة التحكم.سجل (عكس);
يستخدم هذا الرمز حلقة تبدأ من الفهرس الأخير وتنتهي مع الأول (0). في كل تكرار للحلقة ، يتم تنفيذ ما يلي:
يتم إضافة العنصر الحالي من مجموعة أر مع الفهرس الأول إلى نهاية مجموعة ريفيرسيدار الجديدة باستخدام طريقة الدفع. هذا يسمح لك بالحفاظ على ترتيب العناصر ، ولكن في الاتجاه المعاكس.
نتيجة لتنفيذ التعليمات البرمجية ، سيتم إخراج المصفوفة التالية إلى وحدة التحكم:
[5, 4, 3, 2, 1]
يمكن أن يكون استخدام الحلقات عند قلب مصفوفة في جافا سكريبت مفيدا عندما تريد التحكم في العملية بشكل أكثر دقة وتغيير عناصر المصفوفة عن طريق إجراء عمليات معينة معهم.
. متغير
ابدأ
سوف يشير إلى العنصر الأول من المصفوفة ، و
النهاية
- إلى آخر واحد. ثم سنقوم بتنفيذ الحلقة
من متغير النهاية
. داخل الحلقة ، سوف نستخدم التعيين العكسي لمبادلة القيم بين المتغيرات.
وظيفة عكس (آر) {
دعونا نبدأ = 0;
دعونا نهاية = آر.طول-1;
في حين (بداية < نهاية) {
[أر [بداية] ، أر [نهاية]] = [أر [نهاية] ، أر [بداية]];
تبدأ من++;
النهاية--;
}
عودة آر;
}
في هذا المثال ، نستخدم تدمير الصفيف لتبادل القيم. في كل تكرار للحلقة ، نقوم بتبديل العناصر باستخدام التخصيص العكسي
[أر [بداية] ، أر [نهاية]] = [أر [نهاية] ، أر [بداية]];
. ثم نزيد القيمة
من متغير البداية
وتقليل القيمة
من متغير النهاية
لكل وحدة.
مثال على استخدام الوظيفة:
مجموعة كونست = [1, 2, 3, 4, 5];
كونست ريفيريداراي = ريفيريراي (صفيف);
وحدة التحكم.سجل (عكسمصفوفة); // [5, 4, 3, 2, 1]
نتيجة لتنفيذ وظيفة ريفيرسيراي
,
- سيتم تبديل عناصر صفيف الصفيف وسنحصل على مصفوفة عكسية مقلوبة:
- [5, 4, 3, 2, 1]
.
العودية
العودية هي تقنية برمجة تستدعي فيها الوظيفة نفسها. في سياق قلب المصفوفة ، يعني الحل العودي استدعاء دالة لجميع عناصر المصفوفة وحفظ النتيجة في مصفوفة جديدة. يتم تطبيق العودية حتى يتم الوصول إلى الحالة الأساسية-مصفوفة بعنصر واحد أو بدون عناصر.
يمكن أن يكون أحد الخيارات لحل مشكلة عكس مصفوفة في جافا سكريبت بشكل متكرر هو الوظيفة التالية:
وظيفة ريفيريرايركورسيف (أر) {
// الحالة الأساسية: إذا كانت المصفوفة فارغة أو تحتوي على عنصر واحد فقط,
// إرجاع المصفوفة الأصلية
إذا (آر.الطول < = 1) {
عودة آر;
}
// استدعاء الدالة بشكل متكرر لجميع عناصر المصفوفة باستثناء الأول
فار عكس = ريفيريرايريكورسيف(آر.شريحة (1));
// إرجاع مصفوفة جديدة يكون فيها العنصر الأول من المصفوفة الأصلية
// يتبع المصفوفة المقلوبة
عودة عكس.كونكات (آر آر [0]);
}
مجموعة فار= [1, 2, 3, 4, 5];
فار ريفيريداري = ريفيريرايريكورسيف(صفيف);
وحدة التحكم.سجل (عكسمصفوفة); // [5, 4, 3, 2, 1]
في هذه الوظيفة ، نتحقق من الحالة الأساسية عندما تحتوي المصفوفة على عنصر واحد أو تكون فارغة. في هذه الحالة ، نعيدها ببساطة إلى حالتها الأصلية. خلاف ذلك ، فإننا نسمي الدالة بشكل متكرر لجميع عناصر المصفوفة باستثناء العنصر الأول ، ثم نجمع المصفوفة المقلوبة الناتجة مع العنصر الأول من المصفوفة الأصلية.
قد يكون الحل العودي أكثر سهولة ، ولكن بالمقارنة مع طرق تقليب الصفيف الأخرى ، قد يكون أقل كفاءة من حيث التعقيد الزمني والمكاني. عند استدعاء الوظيفة لكل عنصر من عناصر المصفوفة ، نقوم بإنشاء صفائف جديدة وتخزينها في الذاكرة. هذا يمكن أن يؤدي إلى تجاوز مكدس الاستدعاءات وإبطاء البرنامج عند العمل مع المصفوفات الكبيرة.