Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Javascript ARRAY

  1. #1

    Javascript ARRAY

    E' impossibile , non ci voglio credere

    Anzi non ci credo

    Ho 2 array :

    Uno , ARRAY_VALUE è popolato , e ORIGINA_ARRAY è la sua copia
    praticamente e lo popolo in questo modo

    var ORIGINAL_ARRAY = new Array()
    ORIGINAL_ARRAY = ARRAY_VALUE

    Come è possibile che se cambio i valori di ARRAY_VALUE ,
    cambiano anche quelli di ORIGINAL_VALUE ?!?!?

    VVoVe:

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    è tutto normale
    se tu fai ORIGINAL_ARRAY = ARRAY_VALUE in realtà non lo copi ma crei un oggetto che punta all'altro array... quindi se modifichi uno modifichi anche l'altro.
    Se vuoi farti una copia devi farlo con un ciclo
    codice:
    function CopiaArray(arr){
      var arrx = new Array();
      for(var i=0;i<arr.length;i++)
        arrx[arrx.length]=arr[i]
      return arrx
    }
    
    ORIGINAL_ARRAY = CopiaArray(ARRAY_VALUE)

  3. #3
    Emh , a dir la verità il mio non è un array ma
    è una matrice quadrata

    Avete una funzione pronta che clona il tutto ???


  4. #4
    Ops , mi correggo . . .

    Forse questa fà a caso mio . . .

    Provo . . .

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da DarioN1
    Ops , mi correggo . . .

    Forse questa fà a caso mio . . .

    Provo . . .
    eh sì basta fare 4 cicli

  6. #6
    Originariamente inviato da willybit
    Se vuoi farti una copia devi farlo con un ciclo
    o semplicemente sfruttare concat

    codice:
    var a = new Array();
    a.push('test');
    var b = a.concat(); // copia
    a[0] = 'change';
    alert(b[0]); // sarà test
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    viva gli array e i puntatori
    68storj

  8. #8
    Insomma , potevano inserire una funzione di clone però

    Mi son tirato secco , anzi , ho dovuto ricorrere ad altri
    trucchi perchè altrimenti mi veniva troppo lunga la cosa . . .

    Sperando bene , forse sono uscito dalla CAC...

  9. #9
    Originariamente inviato da DarioN1
    Insomma , potevano inserire una funzione di clone però
    codice:
    Array.prototype.clone = function(){
    	return this.concat();
    }
    
    var a = new Array();
    a.push('test');
    var b = a.clone();


    ... questa dovrebbe essere universale
    [edit]
    ok, debuggata, sembra ok , eccola
    http://www.devpro.it/javascript_id_107.html
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.