Autor | Zpráva | ||
---|---|---|---|
mark92 Profil |
#1 · Zasláno: 28. 9. 2010, 17:43:41
zdravím, ako sa prosím vás kopíruje obsah dvojrozmerného poľa do druhej premennej? problém je v tom, že v tomto kóde...:
var a = [[1,2],[3,4]]; var b = a; b [0][0] = 5; return(a); ... mi vráti pole [[5,2],[3,4]] ... dosť ma zarazilo, keď som zistil, ze príkaz b = a nerobí len jednoduché prenesenie hodnôt jedného poľa do druhého, ale robí aj to, že v prípade zmeny nejakej hodnoty v poli b, zmení aj hodnotu v poli a... ako potom preniesť hodnoty poľa a do premennej b tak, aby tam nevznikalo to púto medzi poľami? je na to nejaký príkaz? Hľadal som na googli, našiel som príkaz Array.slice();, ale funguje len na jednorozmerné polia... ďakujem |
||
Witiko Profil |
#2 · Zasláno: 29. 9. 2010, 14:20:56
Budeš muset projít první úroveň pole cyklem. Pole je objekt, předává se pointer, ne data.
|
||
_es Profil |
#3 · Zasláno: 29. 9. 2010, 15:03:58 · Upravil/a: _es
Pre dvorozmerné "neriedke" pole:
var b = a.slice(); for(var i = 0; i < b.length; i++) b[i] = b[i].slice(); |
||
Časová prodleva: 14 let
|
0