aboutsummaryrefslogtreecommitdiff
path: root/files/ca/web/javascript/reference/global_objects/array/splice/index.html
blob: c47f9df482575c187e117935918c8e53027f5605 (plain)
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
---
title: Array.prototype.splice()
slug: Web/JavaScript/Reference/Global_Objects/Array/splice
translation_of: Web/JavaScript/Reference/Global_Objects/Array/splice
original_slug: Web/JavaScript/Referencia/Objectes_globals/Array/splice
---
<div>{{JSRef}}</div>

<p>El mètode <code><strong>splice()</strong></code> modifica el contingut d'un array eliminant elements ja existents i/o afegint-ne de nous.</p>

<h2 id="Sintaxi">Sintaxi</h2>

<pre class="syntaxbox"><code><var>array</var>.splice(<em>inici</em>, <em>comptadorEliminar</em>[, <var>item1</var>[, <var>item2</var>[, ...]]])
</code></pre>

<h3 id="Paràmetres">Paràmetres</h3>

<dl>
 <dt><code>inici</code></dt>
 <dd>La posició a partir de la qual es començarà a modificar l'array (considerant 0 com a primera posició). Si s'especifca un nombre major que la longitud de l'array, la posició d'inici real esdevindrà la longitud de l'array. Si s'especifica un nombre negatiu, la posició d'inici serà el valor absolut del nombre especificat contant des del final de l'array.</dd>
 <dt><code>comptadorEliminar</code></dt>
 <dd>Un nombre sencer que indica el nombre d'elements que s'eliminaran. Si <code>comptadorEliminar</code> és 0 no s'eliminarà cap element. En aquest cas s'hauria d'especificar al menys un nou element. Si <code>comptadorEliminar</code> és major que el nombre d'elements de l'array des de la posició<strong> </strong><code>inici</code> fins el final de l'array tots els elements des d'<code>inici</code> fins al final de l'array seran eliminats.</dd>
 <dd>Si s'omet <code>comptadorEliminar</code> aquest rebrà un valor per defecte igual a (<code>arr.length - inici</code>)<code>.</code></dd>
 <dt><code>item1, item2, <em>...</em></code></dt>
 <dd>Els elements que s'afegiran a l'array, començant a la posició <code>inici</code>. Si no s'especifcia cap element, <code>splice()</code> només eliminarà elements de l'array.</dd>
</dl>

<h3 id="Valor_retornat">Valor retornat</h3>

<p>Un array que conté els elements eliminats. Si només s'ha eliminat un element es retornarà un array amb un sol element. Si no s'ha eliminat cap element retornarà un array buit.</p>

<h2 id="Descripció">Descripció</h2>

<p>Si s'especifica un nombre diferent d'elements a eliminar del nombre d'elements a inserir la longitud de l'array canviarà al final de la crida.</p>

<h2 id="Exemples">Exemples</h2>

<h3 id="Utilitzar_splice()">Utilitzar <code>splice()</code></h3>

<p>L'script seguent ilustra l'ús de <code>splice()</code>:</p>

<pre class="brush: js">var myFish = ['angel', 'clown', 'mandarin', 'surgeon'];

// eliminem 0 elements a partir de la posició 2, i inserim 'drum'
var eliminats = myFish.splice(2, 0, 'drum');
// myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon']
// eliminats va [], no s'han eliminat elements

// myFish val ['angel', 'clown', 'drum', 'mandarin', 'surgeon']
// eliminem 1 element a la posició 3
eliminats = myFish.splice(3, 1);
// myFish val ['angel', 'clown', 'drum', 'surgeon']
// eliminats val ['mandarin']

// myFish val ['angel', 'clown', 'drum', 'surgeon']
// Eliminem 1 element a la posició 2, i inserim 'trumpet'
eliminats = myFish.splice(2, 1, 'trumpet');
// myFish val ['angel', 'clown', 'trumpet', 'surgeon']
// eliminats val ['drum']

// myFish val ['angel', 'clown', 'trumpet', 'surgeon']
// eliminem 2 elements de la posició 0, i inserim 'parrot', 'anemone' i 'blue'
eliminats = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
// myFish val ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon']
// eliminats val ['angel', 'clown']

// myFish val ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon']
// eliminem 2 elements de la posició 3
eliminats = myFish.splice(myFish.length -3, 2);
// myFish val ['parrot', 'anemone', 'surgeon']
// eliminats val ['blue', 'trumpet']
</pre>

<h2 id="Especificacions">Especificacions</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Especificació</th>
   <th scope="col">Estat</th>
   <th scope="col">Comentaris</th>
  </tr>
  <tr>
   <td>{{SpecName('ES3')}}</td>
   <td>{{Spec2('ES3')}}</td>
   <td>Definició inicial. Implementat a JavaScript 1.2.</td>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-15.4.4.12', 'Array.prototype.splice')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-array.prototype.splice', 'Array.prototype.splice')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-array.prototype.splice', 'Array.prototype.splice')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>

<div>{{CompatibilityTable}}</div>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Característica</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari</th>
  </tr>
  <tr>
   <td>Suport bàsic</td>
   <td>{{CompatChrome("1.0")}}</td>
   <td>{{CompatGeckoDesktop("1.7")}}</td>
   <td>{{CompatIE("5.5")}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Característica</th>
   <th>Android</th>
   <th>Chrome for Android</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Suport bàsic</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<h2 id="Compatibilitat_amb_versions_anteriors">Compatibilitat amb versions anteriors</h2>

<p>A JavaScript 1.2 el mètode <code>splice()</code> retornava l'element eliminat si només s'havia eliminat un sol element (és a dir, si el valor del paràmetre <code>comptadorEliminar</code> era 1); en qualsevol altre cas retornava un array contenit els elements eliminats.</p>

<div class="note">
<p><strong>Nota:</strong> L'últim navegador en utilitzar JavaScript 1.2 va ser el Netscape Navigator 4, així que podeu asumir que <code>splice()</code> sempre retornarà un array. Aquest és el cas quan un objecte JavaScript disposa de la propietat <code>length</code> i un mètode <code>splice()</code>,{{domxref("console.log()")}} el tracta com si fós un objecte array. Comprovar-ho amb <code>instanceof Array</code> retornarà <code>false.</code></p>
</div>

<h2 id="Vegeu_també">Vegeu també</h2>

<ul>
 <li>{{jsxref("Array.prototype.push()", "push()")}} / {{jsxref("Array.prototype.pop()", "pop()")}} — afegir/eliminar elements del final d'un array</li>
 <li>{{jsxref("Array.prototype.unshift()", "unshift()")}} / {{jsxref("Array.prototype.shift()", "shift()")}} — afegir/eliminar elements de l'inici d'un array</li>
 <li>{{jsxref("Array.prototype.concat()", "concat()")}} — retorna un nou array format a partir d'aquest array i d'altres array(s) i/o valor(s)</li>
</ul>