Метад splice
Метад splice
выдаляе або дадае
элементы ў масіў. Можна толькі выдаляць элементы,
толькі дадаваць або рабіць і тое, і другое
адначасова. Метад вельмі ўніверсальны і
складаны для разумення.
Метад змяняе сам масіў і вяртае пры
гэтым масіў выдаленых элементаў.
Першым параметрам метад прымае нумер элемента
масіва, які трэба выдаліць. Другім параметрам
- колькі элементаў масіва варта выдаліць.
Калі яго паставіць у 0
- то элементы выдалены
не будуць (толькі даданы новыя).
Далей праз коску ідуць элементы, якія
трэба дадаць у масіў (з'яўляюцца неабавязковымі
параметрамі). Гэтые элементы дададуцца замест
выдаленых элементаў масіва.
Калі выдалення не было (калі другі параметр
0
) - элементы ўвставяцца ў масіў пачынаючы
з той пазіцыі, якая ўказана першым параметрам
метаду. Першы параметр можа мець адмоўнае
значэнне. У гэтым выпадку адлік пазіцыі пачнецца
не з пачатку масіва, а з канца. Апошні элемент
пры гэтым будзе мець нумар -1
.
Сінтаксіс
масіў.splice(адкуль выдаляем, колькі выдаляем, [уставіць], [уставіць]...);
Прыклад
Давайце выдалім тры элементы, пачынаючы з першага:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(1, 3);
console.log(arr);
Вынік выканання кода:
['a', 'e']
Прыклад
Давайце вывядзем масіў выдаленых элементаў:
let arr = ['a', 'b', 'c', 'd', 'e'];
let del = arr.splice(1, 3);
console.log(del);
Вынік выканання кода:
['b', 'c', 'd']
Прыклад
Давайце спачатку выдалім элемент з нумарам
2
, а потым замест яго ўставім яшчэ
тры новыхых элемента:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 1, '1', '2', '3');
console.log(arr);
Вынік выканання кода:
['a', 'b', '1', '2', '3', 'd', 'e']
Прыклад
Давайце цяпер нічога не будзем выдаляць, але
на пазіцыю 2
, ўставім яшчэ тры новых
элемента:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 0, '1', '2', '3');
console.log(arr);
Вынік выканання кода:
['a', 'b', '1', '2', '3', 'c', 'd', 'e']
Прыклад . Адмоўнае значэнне
Давайце выдалім перадапошні элемент:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(-2, 1);
console.log(arr);
Вынік выканання кода:
['a', 'b', 'c', 'e']