splice()
يمكن أن يستغرق ما يصل إلى ثلاثة معلمات؟ حسنا ، يمكننا أن نذهب خطوة أخرى مع splice()
- بالإضافة إلى إزالة العناصر ، يمكننا استخدام هذه المعلمة الثالثة ، والتي تمثل واحد أو أكثر من العناصر ، لإضافتها كذلك. يمكن أن يكون هذا مفيدًا بشكل لا يصدق للتبديل السريع لعنصر أو مجموعة من العناصر ، لعنصر آخر. على سبيل المثال ، لنفترض أنك تخزن نظام ألوان لمجموعة من عناصر DOM في مصفوفة ، وتريد تغيير لون بشكل ديناميكي بناءً على إجراء ما: function colorChange (arr، index، newColor) {تأخذ هذه الدالة صفيفًا من القيم السداسية ، وهو فهرس يتم عنده إزالة عنصر ، واللون الجديد لاستبدال العنصر المُزال به. قيمة الإرجاع هي صفيف يحتوي على نظام ألوان تم تعديله حديثًا! في حين أن هذا المثال مفرط في التبسيط ، يمكننا أن نرى القيمة التي يمكن أن تستخدم بها
arr.splice (index، 1، newColor)؛
عودة arr؛
}
let colorScheme = ['# 878787'، '# a08794'، '# bb7e8c'، '# c9b6be'، '# d1becf']؛
colorScheme = colorChange (colorScheme، 2، '# 332327')؛
// أزلنا '# bb7e8c' وأضفنا '# 332327' في مكانها
// colorScheme now equalals '' # 878787 '،' # a08794 '،' # 332327 '،' # c9b6be '،' # d1becf ']
splice()
إلى أقصى إمكاناتها. htmlColorNames
، والتي تأخذ مصفوفة من ألوان HTML كوسيطة. قم بتعديل الوظيفة باستخدام splice()
لإزالة العنصرين الأولين من الصفيف وأضف 'DarkSalmon'
و 'BlanchedAlmond'
في 'DarkSalmon'
الخاصة. htmlColorNames
["DarkSalmon", "BlanchedAlmond", "LavenderBlush", "PaleTurqoise", "FireBrick"]
'
testString: 'assert.deepEqual(htmlColorNames(["DarkGoldenRod", "WhiteSmoke", "LavenderBlush", "PaleTurqoise", "FireBrick"]), ["DarkSalmon", "BlanchedAlmond", "LavenderBlush", "PaleTurqoise", "FireBrick"], "htmlColorNames
should return ["DarkSalmon", "BlanchedAlmond", "LavenderBlush", "PaleTurqoise", "FireBrick"]
");'
- text: يجب أن تستخدم الدالة htmlColorNames
الأسلوب splice()
testString: 'assert(/.splice/.test(code), "The htmlColorNames
function should utilize the splice()
method");'
- text: يجب عدم استخدام shift()
أو unshift()
.
testString: 'assert(!/shift|unshift/.test(code), "You should not use shift()
or unshift()
.");'
- text: يجب عدم استخدام تدوين قوس الصفيف.
testString: 'assert(!/\[\d\]\s*=/.test(code), "You should not use array bracket notation.");'
```