ugrás a tartalomhoz

JS - Float32Array probléma

elek9914 · 2014. Dec. 16. (K), 11.33
Üdv, Adott egy objektum:
var foo = new Float32Array();
ennek vannak elemei is : [ 0 ] = [ 1 ], [ 1 ] = [ 1 ] ...stb

A baj az, hogy valamiért nem törölhető egy elem sem.
typeof szerint objektumról van szó, tehát próba1:
delete foo[0];   // nem működik
delete foo[1];  // nem működik
foo.splice(0,1); // nem működik mert a foo.splice is not a function
foo.splice(1,1); // nem működik mert a foo.splice is not a function
Én rontok el valamit?

itt a tényleges kód
console.log("előtt:" + _webglObjects[ object.id ].buffer.__colorArray.length);  // mondjuk 1170
                    
delete _webglObjects[ object.id ].buffer.__colorArray[((geometry.chgdata*18)+ii)];  //jó az index tuti, mert megtudom változtatni az értékét
                    
console.log("után:" + _webglObjects[ object.id ].buffer.__colorArray.length);  // itt is annyi
köszi
 
1

Nem lehet

Poetro · 2014. Dec. 16. (K), 11.49
Semelyik típusos tömbből nem tudsz törölni. Miért is szeretnél belőle törölni? Ha csak egy része kell, akkor azt át kell másolni egy másik tömbbe. Például subarray függvény segítségével. De mivel ezek nem hagyományos értelemben vett JavaScript tömbök, azok beépített függvényei itt nem léteznek. Érdemes lenne a dokumentációt olvasgatni.
2

Értem, azért szeretnék

elek9914 · 2014. Dec. 16. (K), 11.56
Értem, azért szeretnék törölgetni belőle mert az alkalmazás használata során rengeteg felesleges, használatlan eleme lesz, több ezer vagy több tízezer és így is túl sok memóriát használ az app. Ezek szerint a tömb kiegészítésére sincs lehetőség? pl push()
3

Tömb

Poetro · 2014. Dec. 16. (K), 12.05
Ahogy C-ben sem lehet igazából törölni egy tömbből, itt sem. És nem is lehet hozzáadni elemeket. Ha nem kellenek elemek, akkor törlöd a tömböt. Vagy átmásolod a neked kellő darabokat egy új tömbbe, majd törlöd az eredetit. Nem tudom, hogy igazából mire akarod használni ezt, de ha neked a fenti kényelmi szolgáltatások kellenek, akkor jobban jársz hagyományos tömbökkel. Ugyanakkor elveszted a típusos tömbök sebességét, és csökkentett memória igényét (a hagyományos tömbökkel szemben).
4

3d alkalmazás

elek9914 · 2014. Dec. 16. (K), 12.13
Igen, jelen tömb típusossága sajnos szükséges (WebGL/OpenGL), félek túl sok erőforrást visz el az hogy mondjuk 1,5 millió elemből nincs szükségem 100 ra és ahelyett hogy törölnék 100at létrehozok egy újat 14999900 elemmel :)