Array.prototype.splice()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
Сводка
ÐеÑод splice() изменÑÐµÑ ÑодеÑжимое маÑÑива, ÑдалÑÑ ÑÑÑеÑÑвÑÑÑие ÑлеменÑÑ Ð¸/или добавлÑÑ Ð½Ð¾Ð²Ñе.
СинÑакÑиÑ
splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2)
splice(start, deleteCount, item1, item2, /* â¦, */ itemN)
ÐаÑамеÑÑÑ
start-
ÐндекÑ, Ñ ÐºÐ¾ÑоÑого наÑинаеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ маÑÑива (Ð¾Ñ Ð½ÑлÑ), пÑеобÑазованнÑй в Ñелое ÑиÑло.
- ÐÑÑиÑаÑелÑнÑй Ð¸Ð½Ð´ÐµÐºÑ Ð¾ÑÑÑиÑÑваеÑÑÑ Ð¾Ñ ÐºÐ¾Ð½Ñа маÑÑива: еÑли
-array.length <= start < 0, Ñо иÑполÑзÑеÑÑÑstart + array.length. - ÐÑли
start < -array.length, Ñо иÑполÑзÑеÑÑÑ0. - ÐÑли
start >= array.length, Ñо ни один ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ðµ бÑÐ´ÐµÑ Ñдален, но меÑод Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ ÑÑолÑко ÑлеменÑов, ÑколÑко Ñказано. - ÐÑли
startопÑÑен (иsplice()вÑзÑваеÑÑÑ Ð±ÐµÐ· аÑгÑменÑов), Ñо ниÑего не ÑдалÑеÑÑÑ. ÐÑо оÑлиÑаеÑÑÑ Ð¾Ñ Ð¿ÐµÑедаÑи знаÑениÑundefined, коÑоÑое пÑеобÑазÑеÑÑÑ Ð²0.
- ÐÑÑиÑаÑелÑнÑй Ð¸Ð½Ð´ÐµÐºÑ Ð¾ÑÑÑиÑÑваеÑÑÑ Ð¾Ñ ÐºÐ¾Ð½Ñа маÑÑива: еÑли
deleteCountÐеобÑзаÑелÑнÑй-
Целое ÑиÑло, ÑказÑваÑÑее колиÑеÑÑво ÑлеменÑов в маÑÑиве, коÑоÑÑе нÑжно ÑдалиÑÑ, наÑÐ¸Ð½Ð°Ñ Ñ Ð¿Ð¾Ð·Ð¸Ñии
start.ÐÑли
deleteCountне задано или его знаÑение болÑÑе или Ñавно колиÑеÑÑÐ²Ñ ÑлеменÑов поÑле позиÑии, Ñказанной вstart, Ñо бÑдÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ñ Ð²Ñе ÑлеменÑÑ Ð¾Ñstartдо конÑа маÑÑива. ÐÑли ÑÑебÑеÑÑÑ ÑказаÑÑ Ð¿Ð°ÑамеÑÑitemN, Ñо ÑледÑÐµÑ Ð¿ÐµÑедаÑÑInfinityв каÑеÑÑвеdeleteCount, ÑÑÐ¾Ð±Ñ ÑдалиÑÑ Ð²Ñе ÑлеменÑÑ Ð¿Ð¾Ñлеstart, поÑколÑÐºÑ Ñвное знаÑениеundefinedпÑеобÑазÑеÑÑÑ Ð²0.ÐÑли
deleteCountÑавно0или оÑÑиÑаÑелÑное, ÑлеменÑÑ Ð½Ðµ ÑдалÑÑÑÑÑ. Ð ÑÑом ÑлÑÑае ÑледÑÐµÑ ÑказаÑÑ ÐºÐ°Ðº минимÑм один новÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ (Ñм. ниже). item1, â¦,itemNÐеобÑзаÑелÑнÑй-
ÐлеменÑÑ, коÑоÑÑе нÑжно добавиÑÑ Ð² маÑÑив, наÑÐ¸Ð½Ð°Ñ Ñо
start.ÐÑли не ÑказаÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ ÑлеменÑов, ÑÑнкÑиÑ
splice()ÑолÑко ÑÐ´Ð°Ð»Ð¸Ñ ÑлеменÑÑ Ð¸Ð· маÑÑива.
ÐозвÑаÑаемое знаÑение
ÐаÑÑив, ÑодеÑжаÑий ÑдалÑннÑе ÑлеменÑÑ. ÐÑли бÑÐ´ÐµÑ ÑдалÑн ÑолÑко один ÑлеменÑ, веÑнÑÑÑÑ Ð¼Ð°ÑÑив из одного ÑлеменÑа. ÐÑли никакие ÑлеменÑÑ Ð½Ðµ бÑдÑÑ ÑдаленÑ, веÑнÑÑÑÑ Ð¿ÑÑÑой маÑÑив.
ÐпиÑание
ÐÑли колиÑеÑÑво ÑказаннÑÑ Ð²ÑÑавлÑемÑÑ ÑлеменÑов бÑÐ´ÐµÑ Ð¾ÑлиÑнÑм Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑдалÑемÑÑ ÑлеменÑов, маÑÑив Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ Ð´Ð»Ð¸Ð½Ñ Ð¿Ð¾Ñле вÑзова.
ÐÑимеÑÑ
>УдалÑÐµÑ 0 ÑлеменÑов по индекÑÑ 2 и вÑÑавлÑÐµÑ "drum"
var myFish = ["angel", "clown", "mandarin", "sturgeon"];
var removed = myFish.splice(2, 0, "drum");
// myFish Ñавен ["angel", "clown", "drum", "mandarin", "sturgeon"]
// removed Ñавен [], ниÑего не Ñдалено
УдалÑÐµÑ 1 ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¿Ð¾ индекÑÑ 3
var myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"];
var removed = myFish.splice(3, 1);
// removed Ñавен ["mandarin"]
// myFish Ñавен ["angel", "clown", "drum", "sturgeon"]
УдалÑÐµÑ 1 ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¿Ð¾ индекÑÑ 2 и вÑÑавлÑÐµÑ "trumpet"
var myFish = ["angel", "clown", "drum", "sturgeon"];
var removed = myFish.splice(2, 1, "trumpet");
// myFish Ñавен ["angel", "clown", "trumpet", "sturgeon"]
// removed Ñавен ["drum"]
УдалÑÐµÑ 2 ÑлеменÑа наÑÐ¸Ð½Ð°Ñ Ñ Ð¸Ð½Ð´ÐµÐºÑа 0 и вÑÑавлÑÐµÑ "parrot", "anemone" и "blue"
var myFish = ["angel", "clown", "trumpet", "sturgeon"];
var removed = myFish.splice(0, 2, "parrot", "anemone", "blue");
// myFish Ñавен ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
// removed Ñавен ["angel", "clown"]
УдалÑÐµÑ 2 ÑлеменÑа наÑÐ¸Ð½Ð°Ñ Ñ Ð¸Ð½Ð´ÐµÐºÑа 2
var myFish = ["parrot", "anemone", "blue", "trumpet", "sturgeon"];
var removed = myFish.splice(myFish.length - 3, 2);
// myFish Ñавен ["parrot", "anemone", "sturgeon"]
// removed Ñавен ["blue", "trumpet"]
УдалÑÐµÑ 1 ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¿Ð¾ индекÑÑ -2
var myFish = ["angel", "clown", "mandarin", "sturgeon"];
var removed = myFish.splice(-2, 1);
// myFish Ñавен ["angel", "clown", "sturgeon"]
// removed Ñавен s ["mandarin"]
УдалÑÐµÑ Ð²Ñе ÑлеменÑÑ Ð¿Ð¾Ñле индекÑа 2 (вклÑÑиÑелÑно)
var myFish = ["angel", "clown", "mandarin", "sturgeon"];
var removed = myFish.splice(2);
// myFish Ñавен ["angel", "clown"]
// removed Ñавен ["mandarin", "sturgeon"]
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification > # sec-array.prototype.splice > |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
ÐбÑаÑÐ½Ð°Ñ ÑовмеÑÑимоÑÑÑ
Ð JavaScript 1.2 меÑод splice() возвÑаÑал ÑдалÑннÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÑолÑко еÑли бÑл ÑдалÑн один ÑÐ»ÐµÐ¼ÐµÐ½Ñ (паÑамеÑÑ deleteCount Ñавен 1); в пÑоÑивном ÑлÑÑае меÑод возвÑаÑал маÑÑив Ñ ÑдалÑннÑми ÑлеменÑами. ÐбÑаÑиÑе внимание, ÑÑо поÑледним бÑаÑзеÑом, иÑполÑзÑÑÑим JavaScript 1.2, бÑл Netscape Navigator 4, Ñак ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑиÑаÑÑ, ÑÑо splice() вÑегда возвÑаÑÐ°ÐµÑ Ð¼Ð°ÑÑив.
СмоÑÑиÑе Ñакже
push()/pop()â добавление / Ñдаление ÑлеменÑов Ñ ÐºÐ¾Ð½Ñа маÑÑиваunshift()/shift()â добавление / Ñдаление ÑлеменÑов Ñ Ð½Ð°Ñала маÑÑиваconcat()â возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив, ÑоÑÑоÑÑий из данного маÑÑива, ÑоединÑнного Ñ Ð´ÑÑгими маÑÑивами и/или знаÑениÑми