JavaScript - Arrays

Aus Wikizone
Version vom 24. Januar 2022, 10:52 Uhr von 134.3.74.15 (Diskussion)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Links[Bearbeiten]

http://www.w3schools.com/js/js_obj_array.asp

Arrays erzeugen[Bearbeiten]

1: Regular:

var myCars=new Array(); 
myCars[0]="Saab";       
myCars[1]="Volvo";
myCars[2]="BMW";

2: Condensed:

var myCars=new Array("Saab","Volvo","BMW");

3: Literal:

var myCars=["Saab","Volvo","BMW"];

Mit Array arbeiten[Bearbeiten]

// Werte abrufen und setzen
var name=myCars[0];
myCars[0]="Opel";
// Unterschiedliche Objekte in einem Array
myArray[0]=Date.now;
myArray[1]=myFunction;
myArray[2]=myCars;
// Vordefinierte Methoden und Eigenschaften in einem Array
var x=myCars.length             // the number of elements in myCars
var y=myCars.indexOf("Volvo")   // the index position of "Volvo"
// eigene Methoden mit prototype erzeugen
Array.prototype.ucase=function()
{
  for (i=0;i<this.length;i++)
  {this[i]=this[i].toUpperCase();}
}

Problematische For Schleifen bei Arrays / Objekten[Bearbeiten]

Manchmal hat man spezielle Konstrukte (wahrscheinlich wenn keine Kopie erzeugt wird sondern by Reference Arrays?) bei Objektarrays wenn man diese mit einer For Schleife abarbeitet werden nicht alle Objekte verarbeitet. Denn nach jedem Durchlauf wird ein Objekt entfernt und daher das Array verändert.

Beispiel aus Three.js (model import)

// NOT WORKING
for(const child of gltf.scene.children){ // not working properly
  scene.add(child)
}
// WORKING
while(gltf.scene.children.length){
  scene.add(gltf.scene.children[0])
}
// WORKING TOO
const children = [...gltf.scene.children] // duplicate
for(const child of children){
  scene.add(child)
}
// WORKING TOO
for(let i = gltf.scene.children.length; i > 0; i--){
  scene.add(gltf.scene.children[0])
}