1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
---
title: Array.prototype.splice()
slug: Web/JavaScript/Reference/Global_Objects/Array/splice
tags:
- JavaScript
- splice
- Масив
- заместване
- метод
- премахване
translation_of: Web/JavaScript/Reference/Global_Objects/Array/splice
---
<div>{{JSRef}}</div>
<p>Методът <strong><code>splice()</code></strong> променя съдържанието на масива като изтрива или заменя съществуващи елементи и/или добавя нови.</p>
<div>{{EmbedInteractiveExample("pages/js/array-splice.html")}}</div>
<h2 id="Синтаксис">Синтаксис</h2>
<pre class="syntaxbox">let <var>arrDeletedItems</var> = <var>array</var>.splice(<var>start</var>[, <var>deleteCount</var>[, <var>item1</var>[, <var>item2</var>[, ...]]]])
</pre>
<h3 id="Параметри">Параметри</h3>
<dl>
<dt><code><var>start</var></code></dt>
<dd>Индексът, от който започва промяната на масива.</dd>
<dd>Ако числото е по-голямо от дължината на масива, стойността на <code><var>start</var></code> ще се промени автоматично и ще приеме стойност равна на дължината на масива. В този случай няма да бъдат изтрити елементи от масива. Методът ще се държи като функция за добавяне на елементи и ще добави толкова елементи колкото са подадени като item[n*].</dd>
<dd>Ако <code><var>start</var></code> е отрицателно число обработката на масива ще започне от края на масива.( Случай че, <code><var>start</var></code> e -1 това означава -n е индексът на n-тия последен елемент и следователно е еквивалентен на <code>array.length - n</code> ).</dd>
<dd>Ако <code><var>array</var>.length + <var>start</var></code> е по-малко от <code>0</code>, ще започне от индекс <code>0</code>.</dd>
<dt><code><var>deleteCount</var></code> {{optional_inline}}</dt>
<dd>Число, което показва колко елемента трябва да бъдат изтрити ( започва се от <code><var>start</var></code> ).</dd>
<dd>If <code><var>deleteCount</var></code> is omitted, or if its value is equal to or larger than <code><var>array</var>.length - <var>start</var></code> (that is, if it is equal to or greater than the number of elements left in the array, starting at <code><var>start</var></code>), then all the elements from <code><var>start</var></code> to the end of the array will be deleted.</dd>
<dd>
<div class="blockIndicator note">
<p><strong>Note:</strong> In IE8, it won't delete all when <code><var>deleteCount</var></code> is omitted.</p>
</div>
</dd>
<dd>If <code><var>deleteCount</var></code> is <code>0</code> or negative, no elements are removed. In this case, you should specify at least one new element (see below).</dd>
<dt><code><var>item1</var>, <var>item2</var>, ...</code> {{optional_inline}}</dt>
<dd>The elements to add to the array, beginning from <code><var>start</var></code>. If you do not specify any elements, <code>splice()</code> will only remove elements from the array.</dd>
</dl>
<h3 id="Върната_стойност">Върната стойност</h3>
<p>Методът връща масив, съдържащ изтритите елементи.</p>
<p>Ако само един елемент е премахнат, резултатът ще бъде масив с един елемент.</p>
<p>Ако няма изтрити елементи, резултатът ще бъде празен масив.</p>
<h2 id="Описание">Описание</h2>
<p>Ако броя на добавените елементи се различава от броя на изтритите, ще има промяна в дължината на масива.</p>
<h2 id="Примери">Примери</h2>
<h3 id="Премахват_се_0_елемента_пред_индекс_2_и_се_добавя_drum">Премахват се 0 елемента пред индекс 2 и се добавя "drum"</h3>
<pre class="brush: js">let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
// Ако изходният ви код е в utf8, можете да ползвате всякакви азбуки
let премахнат = myFish.splice(2, 0, 'drum')
// myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"]
// премахнат = [], не са премахнати елементи</pre>
<h3 id="Премахват_се_0_елемента_пред_индекс_2_и_се_добавят_drum_и_guitar">Премахват се 0 елемента пред индекс 2 и се добавят "drum" и "guitar"</h3>
<pre class="brush: js">let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
let removed = myFish.splice(2, 0, 'drum', 'guitar')
// myFish = ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed = [], не са премахнати елементи
</pre>
<h3 id="Премахва_се_един_елемент_започвайки_от_индекс_3">Премахва се един елемент, започвайки от индекс 3</h3>
<pre class="brush: js">let myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon']
let removed = myFish.splice(3, 1)
// removed = ["mandarin"]
// myFish = ["angel", "clown", "drum", "sturgeon"]
</pre>
<h3 id="Remove_1_element_at_index_2_and_insert_trumpet">Remove 1 element at index 2, and insert "trumpet"</h3>
<pre class="brush: js">let myFish = ['angel', 'clown', 'drum', 'sturgeon']
let removed = myFish.splice(2, 1, 'trumpet')
// myFish = ["angel", "clown", "trumpet", "sturgeon"]
// removed = ["drum"]</pre>
<h3 id="Remove_2_elements_from_index_0_and_insert_parrot_anemone_and_blue">Remove 2 elements from index 0, and insert "parrot", "anemone" and "blue"</h3>
<pre class="brush: js">let myFish = ['angel', 'clown', 'trumpet', 'sturgeon']
let removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue')
// myFish = ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
// removed = ["angel", "clown"]</pre>
<h3 id="Remove_2_elements_from_index_2">Remove 2 elements from index 2</h3>
<pre class="brush: js">let myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon']
let removed = myFish.splice(2, 2)
// myFish = ["parrot", "anemone", "sturgeon"]
// removed = ["blue", "trumpet"]</pre>
<h3 id="Remove_1_element_from_index_-2">Remove 1 element from index -2</h3>
<pre class="brush: js">let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
let removed = myFish.splice(-2, 1)
// myFish = ["angel", "clown", "sturgeon"]
// removed = ["mandarin"]</pre>
<h3 id="Remove_all_elements_after_index_2_incl.">Remove all elements after index 2 (incl.)</h3>
<pre class="brush: js">let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
let removed = myFish.splice(2)
// myFish = ["angel", "clown"]
// removed = ["mandarin", "sturgeon"]</pre>
<h2 id="Спецификация">Спецификация</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-array.prototype.splice', 'Array.prototype.splice')}}</td>
</tr>
</tbody>
</table>
<h2 id="Съвместимост_и_подръжка">Съвместимост и подръжка</h2>
<div>
<p>{{Compat("javascript.builtins.Array.splice")}}</p>
</div>
<h2 id="Виж_повече">Виж повече</h2>
<ul>
<li>{{jsxref("Array.prototype.push()", "push()")}} / {{jsxref("Array.prototype.pop()", "pop()")}}— добавя/премахва елемент от края на масива</li>
<li>{{jsxref("Array.prototype.unshift()", "unshift()")}} / {{jsxref("Array.prototype.shift()", "shift()")}}— добавя/премахва елемент от началото на масива</li>
<li>{{jsxref("Array.prototype.concat()", "concat()")}}— връща нов масив състоящ се от този масив, обединен с друг масив или стойности.</li>
</ul>
|