4D array
bleicher
- javascript
0 Kai3450 Novi0 danke
bleicher
Grüße,
irgndwie scheitern meine versuche ein 4D-Array in JS zu benutzen -
var cells=[[[[]]]];
var coords=[];
var temp1=0;
var temp2=0;
var temp3=0;
for(var i=0;i<pos.length;i++){
coords=pos[i].split(" ");
//particles.push();
temp1=parseInt(coords[0]*100);
temp2=parseInt(coords[1]*100);
temp3=parseInt(coords[2]*100);
cells[temp1][temp2][temp3].push([coords,up[i].split(" ")]);
}
ich evrsuche ein 3D koordinatenfeld zu "diskretisieren" und die zugehörigen punkte ine inem 3D array passender koordinaten sammeln - das scheint aber so einfach nciht zu gehen - sol ich tatsächlich den push() schachteln?
MFG
bleicher
[latex]Mae govannen![/latex]
Grüße,
irgndwie scheitern meine versuche ein 4D-Array in JS zu benutzen -
var cells=[[[[]]]];
oder anders geschrieben:
[code lang=javascript]var cells=[
[
[
[]
]
]
];
Also ein Array mit \*einem\* Eintrag, welcher ein Array mit \*einem\* Eintrag ist, welcher ein Array mit \*einem\* Eintrag ist, welcher ein Array mit \*einem\* Eintrag ist. Also kann in
cells[temp1][temp2][temp3] jeder Wert von tempn ausschließlich 0 sein, da du ansonsten in ein undefiniertes Array schreiben willst.
Stur lächeln und winken, Männer!
Kai
--
Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
in Richtung "Mess up the Web".([suit](https://forum.selfhtml.org/?t=197497&m=1324775))
[SelfHTML-Forum-Stylesheet](http://selfhtml.knrs.de/#h_stylesheet)
Hallo,
var cells=[[[[]]]];
Das bringt glaube ich nicht den gewünschten Effekt, da du immer nur dem Element mit dem Index 0 ein neuer Array zuweist.
cells[temp1][temp2][temp3].push([coords,up[i].split(" ")]);
Ungetestet:
if(!typeof cells[temp1] == object) {
cells[temp1] = [];
}
if(!typeof cells[temp1][temp2] == object) {
cells[temp1][temp2] = [];
}
if(!typeof cells[temp1][temp2][temp3] == object) {
cells[temp1][temp2][temp3] = [];
}
cells[temp1][temp2][temp3].push([coords,up[i].split(" ")]);
Oder so:
if(!cells[temp1]) {
cells[temp1] = [];
}
if(!cells[temp1][temp2]) {
cells[temp1][temp2] = [];
}
if(!cells[temp1][temp2][temp3]) {
cells[temp1][temp2][temp3] = [];
}
cells[temp1][temp2][temp3].push([coords,up[i].split(" ")]);
Viele Grüße Novi
Grüße,
danke, häte daran denken sollen - wird im moment so gelöst:
var cells=[];
for(var x=0; x<14; x++){
cells[x]=[];
for(var y=0;y<10;y++){
cells[x][y]=[];
for(var z=0;z<100;z++){
cells[x][y][z]=[];
}
}
}
saubere möglichkeiten in sich?
MFG
bleicher