Array.prototype.splice()‎

من موسوعة حسوب

الدالة Array.prototype.splice()‎ تغيّر محتويات مصفوفة بإزالة عناصر موجودة فيها أو إضافة عناصر جديدة إليها.

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

myFish.splice(2, 0, 'drum'); // إضافة عنصر في الفهرس 2
// myFish: ["angel", "clown", "drum", "mandarin", "sturgeon"]

myFish.splice(2, 1); // إزالة عنصر واحد (1) في الفهرس 2
// myFish: ["angel", "clown", "mandarin", "sturgeon"]

البنية العامة

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

start

الفهرس الذي سنبدأ فيه تغيير المصفوفة (ويكون المبدأ هو 0)، وإذا كانت هذه القيمة أكبر من عدد عناصر المصفوفة (أي length)، فسيُضبَط فهرس البداية إلى length، وإذا كانت القيمة سالبةً فسيبدأ العد من نهاية المصفوفة.

deleteCount

عدد صحيح يُشير إلى عدد العناصر التي نريد حذفها.

إذا لم تُحدَّد قيمة الوسيط deleteCount، أو كانت قيمته أكبر من arr.length - start (أي أكبر من عدد العناصر المتبقية في المصفوفة بدءًا من فهرس البداية start)، فستُحذَف جميع العناصر بدءًا من start حتى نهاية المصفوفة.

أما إذا كانت قيمة هذا الوسيط صفرًا أو عددًا سالبًا، فلن تُحذَف أيَّة عناصر؛ وفي هذه الحالة عليك توفير عنصر جديد واحد على الأقل.

item1, item2, ...‎

العناصر التي ستُضاف إلى المصفوفة، بدءًا من الفهرس start، وإذا لم تُحدِّد أيّة عناصر، فستكتفي الدالة splice بحذف العناصر من المصفوفة.

القيمة المعادة

مصفوفة تحتوي على العناصر المحذوفة. وإذا حُذِفَ عنصرٌ واحدٌ فقط فستُعاد مصفوفةٌ لها عنصرٌ وحيد، وإذا لم تُحذَف أيّة عناصر، فستُعاد مصفوفةٌ فارغة.

الوصف

إذا حاولت إضافة عدد من العناصر يختلف عن عدد العناصر التي تريد حذفها، فسيكون طول (length) المصفوفة الناتجة مختلفًا.

أمثلة

إضافة عنصر إلى مصفوفة

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2, 0, 'drum');

// myFish: ["angel", "clown", "drum", "mandarin", "sturgeon"] 
// removed: []. أي لم تُحذَف أيّة عناصر

حذف عنصر من فهرسٍ معيّن

var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];
var removed = myFish.splice(3, 1);

// myFish: ["angel", "clown", "drum", "sturgeon"]
// removed: ["mandarin"]

حذف عنصر من فهرسٍ معيّن وإضافة عنصر آخر

var myFish = ['angel', 'clown', 'drum', 'sturgeon'];
var removed = myFish.splice(2, 1, 'trumpet');

// myFish: ["angel", "clown", "trumpet", "sturgeon"]
// removed: ["drum"]

حذف عنصرين وإضافة ثلاثة عناصر

var myFish = ['angel', 'clown', 'trumpet', 'sturgeon'];
var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');

// myFish: ["parrot", "anemone", "blue", "trumpet", "sturgeon"] 
// removed: ["angel", "clown"]

حذف عنصرين

var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'];
var removed = myFish.splice(myFish.length - 3, 2);

// myFish: ["parrot", "anemone", "sturgeon"] 
// removed: ["blue", "trumpet"]

حذف عنصر من فهرسٍ سالب

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(-2, 1);

// myFish: ["angel", "clown", "sturgeon"] 
// removed: ["mandarin"]

حذف جميع العناصر بعد فهرسٍ معيّن

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2);

// myFish: ["angel", "clown"] 
// removed: ["mandarin", "sturgeon"]

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات