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
|
---
title: Array.prototype.length
slug: Web/JavaScript/Reference/Global_Objects/Array/length
tags:
- Array
- JavaScript
- Property
- Reference
translation_of: Web/JavaScript/Reference/Global_Objects/Array/length
---
<div>{{JSRef}}</div>
<p>Die <code><strong>length</strong></code> Eigenschaft eines Objektes vom Typ <code>Array</code> setzt die Anzahl der Elemente in einem Array oder gibt diese Anzahl zurück. Der Wert ist eine vorzeichenlose, 32-Bit Ganzzahl, welche größer als der größte Index im Array ist.</p>
<div>{{EmbedInteractiveExample("pages/js/array-length.html")}}</div>
<h2 id="Beschreibung">Beschreibung</h2>
<p>Der Wert der <code>length</code> Eigenschaft ist ein positive, ganze Zahl und hat einen Wert kleiner als 2<sup>32</sup>.</p>
<pre class="brush: js notranslate">var namelistA = new Array(4294967296); //4294967296 = 2<sup>32</sup>
var namelistC = new Array(-100) //negative sign
console.log(namelistA.length); //RangeError: Invalid array length
console.log(namelistC.length); //RangeError: Invalid array length
var namelistB = [];
namelistB.length = Math.pow(2,32)-1; //set array length less than 2 to the 32nd power
console.log(namelistB.length);
//4294967295
</pre>
<p>Man kann die <code>length</code> Eigenschaft eines Array zu jeder Zeit ändern, um das Array zu kürzen. Wenn ein Array mit dem Ändern der <code>length</code> Eigenschaft vergrößert wird, erhöht sich die Anzahl der der tatsächlichen Elemente. Wenn z. B. <code>length</code> auf 3 gesetzt wird und die aktuelle länge 2 ist, dann enthält das Array 3 Elemente, wobei das dritte Element <code>undefined</code> ist.</p>
<pre class="brush: js notranslate">var arr = [1, 2, 3];
printEntries(arr);
arr.length = 5; // set array length to 5 while currently 3.
printEntries(arr);
function printEntries(arr) {
var length = arr.length;
for (var i = 0; i < length; i++) {
console.log(arr[i]);
}
console.log('=== printed ===');
}
// 1
// 2
// 3
// === printed ===
// 1
// 2
// 3
// undefined
// undefined
// === printed ===</pre>
<p>Jedoch sagt die <code>length</code> Eigenschaft nicht zwangsläufig etwas über die Anzahl der definierten Werte in einem Array aus. Mehr dazu im Artikel <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Array#Relationship_between_length_and_numerical_properties" title="Relationship between length and numerical properties">Beziehung zwischen Längen und nummerischen Eigenschaften</a>.</p>
<p>{{js_property_attributes(1, 0, 0)}}</p>
<div>
<ul>
<li><code>Writable</code>: Wenn das Attribut auf <code>false</code> gesetzt ist, kann der Wert der Eigenschaft nicht mehr geändert werden.</li>
<li><code>Configurable</code>: Wenn das Attribut auf <code>false</code> gesetzt ist, wird jeder Versuch scheitern, die Werte der Attribute <code>Writable</code>, <code>Configurable<font face="Arial, x-locale-body, sans-serif"><span style="background-color: #ffffff;"> und </span></font></code><code>Enumerable </code>zu ändern.</li>
<li><code>Enumerable</code>: Wenn das Attribut auf <code>true</code> gesetzt ist, wird das Attribut während <a href="/de/docs/Web/JavaScript/Reference/Statements/for">for</a> oder <a href="/de/docs/Web/JavaScript/Reference/Statements/for...in">for..in</a> Schleifen iteriert.</li>
</ul>
</div>
<h2 id="Beispiele">Beispiele</h2>
<h3 id="Iterieren_über_ein_Array">Iterieren über ein Array</h3>
<p>Im folgenden Beispiel wird über das <code>numbers</code> Array iteriert. Dabei wird die <code>length</code> Eigenschaft verwendet, um festzustellen, wie viele Elemente das Array enthält. Der Wert jedes Elements wird dabei verdoppelt.</p>
<pre class="brush: js notranslate">var numbers = [1, 2, 3, 4, 5];
for (var i = 0; i < numbers.length; i++) {
numbers[i] *= 2;
}
// numbers enthält jetzt die Werte: [2, 4, 6, 8, 10]
</pre>
<h3 id="Verkürzung_eines_Arrays">Verkürzung eines Arrays</h3>
<p>Das folgende Beispiel verkürzt das Array <code>numbers</code> auf eine Länge von 3, wenn die Länge größer als 3 ist.</p>
<pre class="brush: js notranslate">var numbers = [1, 2, 3, 4, 5];
if (numbers.length > 3) {
numbers.length = 3;
}
console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3
</pre>
<h2 id="Spezifikationen">Spezifikationen</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spezifikation</th>
<th scope="col">Status</th>
<th scope="col">Komment</th>
</tr>
<tr>
<td>{{SpecName('ES1')}}</td>
<td>{{Spec2('ES1')}}</td>
<td>Initiale Definition.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-15.4.5.2', 'Array.length')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-properties-of-array-instances-length', 'Array.length')}}</td>
<td>{{Spec2('ES6')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-properties-of-array-instances-length', 'Array.length')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="Browserkompabilität">Browserkompabilität</h2>
<div>
<p>{{Compat("javascript.builtins.Array.length")}}</p>
</div>
<h2 id="Siehe_auch">Siehe auch</h2>
<ul>
<li>{{jsxref("Array")}}</li>
</ul>
|