aboutsummaryrefslogtreecommitdiff
path: root/files/it/web/javascript/reference/global_objects/array/isarray/index.html
blob: d7aaf864bf706affefbe9ac371673f61e37bf3c6 (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
---
title: Array.isArray()
slug: Web/JavaScript/Reference/Global_Objects/Array/isArray
tags:
  - Array
  - ECMAScript 5
  - JavaScript
  - Referenza
  - metodo
  - polyfill
translation_of: Web/JavaScript/Reference/Global_Objects/Array/isArray
---
<div>{{JSRef}}</div>

<p>Il metodo <code><strong>Array.isArray()</strong></code> determina se il valore passato è un {{jsxref("Array")}}.</p>

<pre class="brush: js">Array.isArray([1, 2, 3]);  // true
Array.isArray({foo: 123}); // false
Array.isArray('foobar');   // false
Array.isArray(undefined);  // false
</pre>

<h2 id="Sintassi">Sintassi</h2>

<pre class="syntaxbox">Array.isArray(<var>value</var>)</pre>

<h3 id="Parametri">Parametri</h3>

<dl>
 <dt><code>value</code></dt>
 <dd>Il valore da verificare.</dd>
</dl>

<h3 id="Valore_di_ritorno">Valore di ritorno</h3>

<p><code>true</code> se il valore è un {{jsxref("Array")}}; altrimenti, <code>false</code>.</p>

<h2 id="Descrizione">Descrizione</h2>

<p>Se il valore è un {{jsxref("Array")}}, viene ritornato <code>true</code>; altrimenti viene ritornato <code>false</code>.</p>

<p>Vedi l'articolo <a href="http://web.mit.edu/jwalden/www/isArray.html">“Determining with absolute accuracy whether or not a JavaScript object is an array”</a> per maggiori dettagli. Data un'istanza {{jsxref("TypedArray")}}, viene ritornato sempre <code>false</code>.</p>

<h2 id="Esempi">Esempi</h2>

<pre class="brush: js">// tutte le seguenti chiamate ritornano true
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array('a', 'b', 'c', 'd'));
Array.isArray(new Array(3));
// Fatto poco noto: Array.prototype stesso è un array:
Array.isArray(Array.prototype);

// tutte le seguenti chiamate ritornano false
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray('Array');
Array.isArray(true);
Array.isArray(false);
Array.isArray(new Uint8Array(32));
Array.isArray({ __proto__: Array.prototype });
</pre>

<h3 id="instanceof_vs_isArray"><code>instanceof</code> vs <code>isArray</code></h3>

<p>Quando si verifica l'istanza <code>Array</code><code>Array.isArray</code> è preferito su <code>instanceof</code> perché funziona attraverso gli <code>iframes</code>.</p>

<pre class="brush: js">var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // [1,2,3]

// Verifica corretta dell'array
Array.isArray(arr);  // true
// Considerato dannoso, perché non funziona attraverso iframe
arr instanceof Array; // false
</pre>

<h2 id="Polyfill">Polyfill</h2>

<p>L'esecuzione del seguente codice prima di qualsiasi altro codice creerà <code>Array.isArray()</code> se non è nativamente disponibile.</p>

<pre class="brush: js">if (!Array.isArray) {
  Array.isArray = function(arg) {
    return Object.prototype.toString.call(arg) === '[object Array]';
  };
}
</pre>

<h2 id="Specifiche">Specifiche</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specifica</th>
   <th scope="col">Stato</th>
   <th scope="col">Commento</th>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-15.4.3.2', 'Array.isArray')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td>Definizione iniziale Implementato in JavaScript 1.8.5.</td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-array.isarray', 'Array.isArray')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-array.isarray', 'Array.isArray')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilità_con_i_browser">Compatibilità con i browser</h2>

<div>


<p>{{Compat("javascript.builtins.Array.isArray")}}</p>
</div>

<h2 id="Vedi_anche">Vedi anche</h2>

<ul>
 <li>{{jsxref("Array")}}</li>
</ul>