bublik Posted March 19, 2007 Report Share Posted March 19, 2007 Es nodefineju masivu var x=new Array(); Pectam man vajag lai izpildoties funkcijai x['aaa'] mainigais pieskaititu sev klat 1 ( x['aaa']++ ) Bet problema ir tada ka vins rada ka ir nedefinets, ja es vinam pirmstam nepieskiru vertibu!! Ka var izlabot so problemu ? Es nevaru vinam pirmstam pieskirt vertibu jo es vel nezinu kads man bus KEY elements masivam, ('aaa')! Vai kads var palidzet? Link to comment Share on other sites More sharing options...
andrisp Posted March 19, 2007 Report Share Posted March 19, 2007 (edited) x['aaa'] ir funkcija ? Bet ja pareizi sapratu, tad: <script> x = new Array(); x['aaa'] = 0; x['aaa'] ++; alert(x['aaa']); </script> Lai izmantot ++ vai -- operātoru, tad mainīgajam jābūt obligāti definētam. Jo kā tad savādāk JS zinās kādai vērtībai pieskaitīt vai atņemt to vienu vienību ? Edited March 19, 2007 by andrisp Link to comment Share on other sites More sharing options...
bublik Posted March 19, 2007 Author Report Share Posted March 19, 2007 Nevar kautka nodefinet lai visiem masiva elementiem sakttneja vertiba butu 0 ? Link to comment Share on other sites More sharing options...
andrisp Posted March 19, 2007 Report Share Posted March 19, 2007 Tas ir kā ? Visām iespējamajām kombinācijām ? Diezgan neiespējami. Vienīgi iekš javascript bija man šķiet iespējams pārakstīt iebūvēto fju vai klašu kodu, bet tādā veidā tikai lielākos sūdos iebrauksi. Dari šādi: if (typeof(x['aaa']) === 'undefined') { x['aaa'] = 0; } Šo kodu liec tieši pirms x['aaa']++. Tikai atceries, ka x ir jābūt definētam. Link to comment Share on other sites More sharing options...
bubu Posted March 19, 2007 Report Share Posted March 19, 2007 Vēl citi labi veidi, kā inicializēt masīvus/vārdnīcas: var a = []; var b = [1,20,11,345]; var c = {}; var c = { 'aaa':1, 'bb':22, 'c':333 }; Link to comment Share on other sites More sharing options...
DarkSide Posted March 25, 2007 Report Share Posted March 25, 2007 Dari šādi: if (typeof(x['aaa']) === 'undefined') { x['aaa'] = 0; } Ja Tev tas x['aaa']++ ir iekš cikla, kas izpildās daudzas reizes un 'aaa' daudzreiz mainās, tad labāk šitā (jābūt ātrāk nedaudz): if(typeof(x['aaa']) === 'undefined') {x['aaa'] = 1;} else {x['aaa']++;} nevis if(typeof(x['aaa']) === 'undefined') {x['aaa'] = 0;} x['aaa']++; Link to comment Share on other sites More sharing options...
v3rb0 Posted March 25, 2007 Report Share Posted March 25, 2007 (edited) nu ja visi, tad es a! dari varbūt šitā.. http://paste.php.lv/5349 nevis Ja Tev tas x['aaa']++ ir iekš cikla, kas izpildās daudzas reizes un 'aaa' daudzreiz mainās, tad labāk šitā (jābūt ātrāk nedaudz): if(typeof(x['aaa']) === 'undefined') {x['aaa'] = 1;} else {x['aaa']++;} nevis if(typeof(x['aaa']) === 'undefined') {x['aaa'] = 0;} x['aaa']++; :D Edited March 25, 2007 by v3rb0 Link to comment Share on other sites More sharing options...
Recommended Posts