Topic: Javascript multi-dimensiniai vardiniai masyvai

P.S. Kas per vertimas i LT kalba? *pyp* *pyp* :)

Sveiki,

Tai ka daryti su JS ir multidimensional associative arrays? JS tokiu nepalaiko, todel 'galima' viska versti i objekta ir jo properties.

Tai jeigu sukuriam toki dalyka (tipo masyvas):

var multiArray={ AAA:"vienas", BBB:"du", CCC:{ 0:"xxx", 1:"yyy", 2:"zzz"} };

Kaip paleisti cikla per sita 'multidimensini vardini masyva', kad visus vardus ir reiksmes galima butu graziai sudelioti i viena eile?

Kitaip tariant, reikia gauti:

string.php ? AAA=vienas & BBB = du & CCC = xxx,yyy,zzz

Jeigu bandyti cikla cikle, tai jis pavaro per kiekviena pirmo lygio reiksmes raide ir gaunasi: ? AAA = v,i,e,n,a,s, BBB = d,u, CCC = xxx, yyy,zzz

    for(var key in multiArray)
    {
            for(var subkey in multiArray[key])
            {
                string = string + multiArray[key][subkey]+",";
            }
    }

Any minciu?

Re: Javascript multi-dimensiniai vardiniai masyvai

tai patikrink kintamojo tipą cikle, stringo neextraktink po raidę  :)
o jeigu rimtai, perduok json;u masyvą, visvien su php tikrinsi..

Kiek maigyklių sudėvėjai ?

Re: Javascript multi-dimensiniai vardiniai masyvai

json zinau, bet noriu su JS sprendimo. Tik va atsakymas 'patikrink kintamojo tipa' nera tikslus nes jeigu zinociau ka ir kaip tikrinti tai buciau pats issprendes.

Bet kadangi draugai is kitu puslapiu biski konkretesni tai tikrinimas butu toks:

if(typeof multiArray[key] == 'object')
{
   string = string + multiArray[key][subkey]+",";
}

Aciu uz demesi :)

Re: Javascript multi-dimensiniai vardiniai masyvai

Pagalvojau žinosi kaip tasai vaidinasi, tai nebus sunku pasigooglint - variable type :)

Kiek maigyklių sudėvėjai ?

5 (edited by andriusfm 2012-05-21 11:06:44)

Re: Javascript multi-dimensiniai vardiniai masyvai

Smalsu, kodėl nenaudoti masyvo (vietoje jo imitacijos)?

Tai yra vietoje:

var multiArray={ AAA:"vienas", BBB:"du", CCC:{ 0:"xxx", 1:"yyy", 2:"zzz"} };

Ar ne patogiau būtų?

var multiArray={ AAA:"vienas", BBB:"du", CCC:["xxx", "yyy", "zzz"] };

Tokiu atveju pagal nutylėjimą masyvo vertės išrašomos "per kablelį":

var str = '';
for (var key in multiArray) {
  str += key + '=' + multiArray[key] + '&';
}

// resultatas: str -> AAA=vienas&BBB=du&CCC=xxx,yyy,zzz&

6 (edited by Ajaks 2012-05-21 21:41:48)

Re: Javascript multi-dimensiniai vardiniai masyvai

O jeigu vidinis masyvas turi buti vardinis? Galbut ne siam atvejui, bet kazkam kitam? Tuomet vistiek reikia daryti pirma varianta?

Bet siuo atveju turbut galima naudoti ir paprasta masyva vietoj trecio elemento. Kodel gi ne.

Re: Javascript multi-dimensiniai vardiniai masyvai

Ajaks wrote:

O jeigu vidinis masyvas turi buti vardinis? Galbut ne siam atvejui, bet kazkam kitam? Tuomet vistiek reikia daryti pirma varianta?

Tada objektas objekte. Apie masyvą užsiminiau tik tam, kad galbūt priminti apie galimybę.