لغة البرمجة جافاسكريبت

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

الطريقة الأولى: حذف عنصر اعتمادا على مؤشره (By index)

لنفترض أنه لدينا مصفوفة تضم 5 عناصر ونريد حذف العنصر ذو المؤشر 3.

للوصول لهذا الهدف سنستخدم الوظيفة ()slice بهذه الكيفية:

الوظيفة ()slice تقوم بإنشاء مصفوفة جديدة بداية من البارامتر الأول (0) ووصولا إلى المؤشر ما قبل البارامتر الثاني (2). في حالتنا اقتطعنا العناصر [a, b, c] ذات المؤشرات .0، 1 و 2.

هذه المصفوفة من ثلاث عناصر نقوم بدمجها عن طريق الوظيفة ()concat مع مصفوفة ثانية نصنعها دائما بواسطة ()slice، وهذه المرة تبدأ المصفوفة الثانية من المؤشر ما بعد البارامتر الأول (i+1 = 4) وتنتهي مع نهاية المصفوفة.

في النهاية عندما تُجمع هاتين المصفوفتين نحصل على مصفوفة واحدة خالية من العنصر d ذو المؤشر 3 🙂

الطريقة الثانية: حذف عنصر اعتمادا على قيمته (By value)

الطريقة الثانية والتي أستخدمها في معظم الحالات، تتم عن طريق الوظيفة ()filter.

أظن أن هذه الطريقة واضحة كثيرة مقارنة بالطريقة الأولى. الدالة ()filter تمر على جميع عناصر المصفوفة وتقوم بحذف جميع العناصر التي قيمتها تساوي valueToRemove.

ماذا عن حذف عدة عناصر ؟

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

بالنسبة للحذف اعتمادا على المؤشر سنقوم بإنشاء دالة نسميها مثلا removeItem:

الدالة ()removeItem نقوم باستدعائها عدة مرات لكي تقوم في كل مرة بحذف عنصر من العناصر التي نريد التخلص منها.

أما إذا أردنا الحذف بالإعتماد على قيمة العناصر فننجز ذلك بواسطة ()filter مع وظيفة ()includes التي تتأكد من وجود أحد عناصر المصفوفة الأصلية في مصفوفة العناصر التي نريد حذفها 🙂 🙂

 

ترك الرد

Please enter your comment!
Please enter your name here