bleicher: 4D array

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

--
__________________________-

FirefoxMyth
  1. [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)
    
  2. 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

    --
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)
  3. 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

    --
    __________________________-

    FirefoxMyth