Array.prototype.splice()

This translation is incomplete. Please help translate this article from English

Методът splice() променя съдържанието на масива като изтрива или заменя съществуващи елементи и/или добавя нови.

Синтаксис

let arrDeletedItems = array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

Параметри

start
Индексът, от който започва промяната на масива.
Ако числото е по-голямо от дължината на масива, стойността на start ще се промени автоматично и ще приеме стойност равна на дължината на масива. В този случай няма да бъдат изтрити елементи от масива. Методът ще се държи като функция за добавяне на елементи и ще добави толкова елементи колкото са подадени като item[n*].
Ако start е отрицателно число обработката на масива ще започне от края на масива.( Случай че, start e -1 това означава -n е индексът на n-тия последен елемент и следователно е еквивалентен на array.length - n ).
Ако array.length + start е по-малко от 0, ще започне от индекс 0.
deleteCount Optional
Число, което показва колко елемента трябва да бъдат изтрити ( започва се от start ).
If deleteCount is omitted, or if its value is equal to or larger than array.length - start (that is, if it is equal to or greater than the number of elements left in the array, starting at start), then all the elements from start to the end of the array will be deleted.

Note: In IE8, it won't delete all when deleteCount is omitted.

If deleteCount is 0 or negative, no elements are removed. In this case, you should specify at least one new element (see below).
item1, item2, ... Optional
The elements to add to the array, beginning from start. If you do not specify any elements, splice() will only remove elements from the array.

Върната стойност

Методът връща масив, съдържащ изтритите елементи.

Ако само един елемент е премахнат, резултатът ще бъде масив с един елемент.

Ако няма изтрити елементи, резултатът ще бъде празен масив.

Описание

Ако броя на добавените елементи се различава от броя на изтритите, ще има промяна в дължината на масива.

Примери

Премахват се 0 елемента пред индекс 2 и се добавя "drum"

let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
// Ако изходният ви код е в utf8, можете да ползвате всякакви азбуки
let премахнат = myFish.splice(2, 0, 'drum')

// myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"] 
// премахнат = [], не са премахнати елементи

Премахват се 0 елемента пред индекс 2 и се добавят "drum" и "guitar"

let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
let removed = myFish.splice(2, 0, 'drum', 'guitar')

// myFish = ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"] 
// removed = [], не са премахнати елементи

Премахва се един елемент, започвайки от индекс 3

let myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon']
let removed = myFish.splice(3, 1)

// removed = ["mandarin"]
// myFish = ["angel", "clown", "drum", "sturgeon"] 

Remove 1 element at index 2, and insert "trumpet"

let myFish = ['angel', 'clown', 'drum', 'sturgeon']
let removed = myFish.splice(2, 1, 'trumpet')

// myFish = ["angel", "clown", "trumpet", "sturgeon"]
// removed = ["drum"]

Remove 2 elements from index 0, and insert "parrot", "anemone" and "blue"

let myFish = ['angel', 'clown', 'trumpet', 'sturgeon']
let removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue')

// myFish = ["parrot", "anemone", "blue", "trumpet", "sturgeon"] 
// removed = ["angel", "clown"]

Remove 2 elements from index 2

let myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon']
let removed = myFish.splice(2, 2)

// myFish = ["parrot", "anemone", "sturgeon"] 
// removed = ["blue", "trumpet"]

Remove 1 element from index -2

let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
let removed = myFish.splice(-2, 1)

// myFish = ["angel", "clown", "sturgeon"] 
// removed = ["mandarin"]

Remove all elements after index 2 (incl.)

let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
let removed = myFish.splice(2)

// myFish = ["angel", "clown"]
// removed = ["mandarin", "sturgeon"]

Спецификация

Specification
ECMAScript (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.

Съвместимост и подръжка

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
spliceChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 5.5
Notes
Full support 5.5
Notes
Notes From Internet Explorer 5.5 through 8, all elements of the array will not be deleted if deleteCount is omitted. This behavior was fixed in Internet Explorer 9.
Opera Full support 4Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support  
Full support
See implementation notes.
See implementation notes.

Виж повече

  • push() / pop()— добавя/премахва елемент от края на масива
  • unshift() / shift()— добавя/премахва елемент от началото на масива
  • concat()— връща нов масив състоящ се от този масив, обединен с друг масив или стойности.