splice()
может принимать до трех параметров? Ну, мы можем сделать еще один шаг с помощью splice()
- в дополнение к удалению элементов, мы можем использовать этот третий параметр, который представляет один или несколько элементов, чтобы добавить их также. Это может быть невероятно полезно для быстрого переключения элемента или набора элементов для другого. Например, предположим, что вы храните цветовую схему для набора элементов DOM в массиве и хотите динамически изменять цвет на основе некоторых действий: function colorChange (arr, index, newColor) {Эта функция принимает массив шестнадцатеричных значений, индекс, с которого нужно удалить элемент, и новый цвет для замены удаленного элемента. Возвращаемое значение представляет собой массив, содержащий новую измененную цветовую схему! Хотя этот пример немного упрощен, мы можем видеть, что значение, использующее
arr.splice (индекс, 1, newColor);
return arr;
}
let colorScheme = ['# 878787', '# a08794', '# bb7e8c', '# c9b6be', '# d1becf'];
colorScheme = colorChange (colorScheme, 2, '# 332327');
// мы удалили '# bb7e8c' и добавили '# 332327' на свое место
// colorScheme теперь равно ['# 878787', '# a08794', '# 332327', '# c9b6be', '# d1becf']
splice()
может иметь максимальный потенциал. htmlColorNames
, которая принимает в качестве аргумента массив цветов HTML. Измените функцию с помощью splice()
чтобы удалить первые два элемента массива и добавить 'DarkSalmon'
и 'BlanchedAlmond'
в соответствующие места. 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.");'
```