Files
freeCodeCamp/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-data-structures/remove-items-using-splice.md
2022-10-20 09:13:17 -07:00

3.2 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d78b2367417b2b2512b10 أستخدم splice() لإزالة عناصر 1 301166 remove-items-using-splice

--description--

حسنًا، لقد تعلمنا كيفية إزالة العناصر من بداية ونهاية arrays باستخدام shift() و pop()، ولكن ماذا لو أردت إزالة عنصر من مكان ما في المنتصف؟ أم إزالة أكثر من عنصر واحد في المرة الواحدة؟ هنا يأتي دور splice(). splice() تسمح لنا بالقيام بما يلي: إزالة أي عدد من العناصر المتتالية من أي مكان في array.

splice() يمكن أن يأخذ ما يصل إلى 3 parameters، ولكن في الوقت الحالي، سنركز على أول 2 parameters. أول ٢ parameters في splice() هما أعداد صحيحة تمثل indexes، أو أماكن العناصر في array التي تستدعهم splice(). وتذكر أن arrays هم zero-indexed، بحيث لنشير إلى العنصر الأول في array، سوف تستخدم 0. يمثل أول parameter في splice() الترتيب (index) في array التي تبدأ منها إزالة العناصر، بينما parameter الثاني يشير إلى عدد العناصر المراد حذفها. على سبيل المثال:

let array = ['today', 'was', 'not', 'so', 'great'];

array.splice(2, 2);

هنا تزل عنصرين بدءاً بالعنصر الثالث (عند index ٢). سيكون array بقيمة ['today', 'was', 'great'].

لا يعدل splice() القائمة فقط الذي يتم استدعاؤها فحسب، بل تقوم أيضًا بإنتاج array جديدة تحتوي على قيمة العناصر المُزالة:

let array = ['I', 'am', 'feeling', 'really', 'happy'];

let newArray = array.splice(3, 2);

newArray لديه القيمة ['really', 'happy'].

--instructions--

لقد قمنا بتهيئة array بأسم arr. استخدم splice() لإزالة العناصر من arr، بحيث لا تحتوي إلا على عناصر نتيجة جمعها يكون 10.

--hints--

لا ينبغي تغيير السطر الأصلي const arr = [2, 4, 5, 1, 7, 5, 2, 1];.

assert(
  __helpers.removeWhiteSpace(code).match(/constarr=\[2,4,5,1,7,5,2,1\];?/)
);

arr يجب أن يحتوي فقط على عناصر مجموعها يكون 10.

assert.strictEqual(
  arr.reduce((a, b) => a + b),
  10
);

يجب أن يستخدم التعلميات البرمجية الخاص بك وظيفة splice() علي arr.

assert(__helpers.removeWhiteSpace(code).match(/arr\.splice\(/));

يجب فقط إزالة العناصر من arr وعدم إضافة أي عناصر إضافية إلى arr.

assert(
  !__helpers.removeWhiteSpace(code).match(/arr\.splice\(\d+,\d+,\d+.*\)/g)
);

--seed--

--seed-contents--

const arr = [2, 4, 5, 1, 7, 5, 2, 1];
// Only change code below this line

// Only change code above this line
console.log(arr);

--solutions--

const arr = [2, 4, 5, 1, 7, 5, 2, 1];
arr.splice(1, 4);