Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    array e array multidimensionali in javascript e jquery

    Salve, non penso ci sia differenza nell'usare javascript o jquery come assegnazione degli array, ma non riesco a capire se sbaglio a livello di scrittura

    Ho bisogno di creare un array multidimensionale, fin qua niente di difficile, so come funzionano, però non riesco ad assegnarli.

    Li devo creare dinamicamente, perchè non so quanto possono essere grossi, quindi uso una variabile che si autoincrementa che mi fa da indice, il vero e proprio contenuto che mi serve lo passo da PHP con un echo.

    cercando un po su internet ho trovato questi metodi di assegnazione

    var mioarray[0][0]=variabile1;
    var mioarray[0][1]=variabile2;
    var mioarray[0][2]=variabile3;

    oppure

    var mioarray[0]=[variabile1,variabile2,variabile3]

    Dovrebbe darmi lo stesso risultato.

    Questo però non mi succede al momento sono con
    codice:
    var indice=0;
    //ciclo while
    var mioarray[indice]=[var1,var2,var3];
    indice++;
    //fine ciclo while
    Anche se inizialmente avevo più una cosa del genere
    codice:
    <?php
    $indice=0;
    ?>
    //ciclo while
    var mioarray[<?php echo $indice; ?>]=[<?php echo $var1; ?>,<?php echo $var2; ?>,<?php echo $var3; ?>];
    indice++;
    //fine ciclo while
    So che tutte le variabili sono assegnate, perchè con l'alert stampo i valori tranquillamente, ma se metto l'assegnazione dell'array mi blocca tutto

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Quote Originariamente inviata da alemix Visualizza il messaggio

    cercando un po su internet ho trovato questi metodi di assegnazione

    var mioarray[0][0]=variabile1;
    var mioarray[0][1]=variabile2;
    var mioarray[0][2]=variabile3;

    oppure

    var mioarray[0]=[variabile1,variabile2,variabile3]

    Dovrebbe darmi lo stesso risultato.

    Non ho capito jQuery cosa c'entri con la domanda, ma i due codici non producono lo stesso risultato

    Prima di tutto stai usando
    codice:
    var
    in modo non corretto: va usato solo una volta per inizializzare l'array con
    codice:
    var mioarray = []
    il secondo esempio funziona perché stai assegnando un array a
    codice:
    mioarray[0]
    (che esiste essendo un array)

    Il primo non funziona perchè vuoi assegnare qualcosa a mioarray[0][0]. ma il secondo indice non esiste ancora , per cui prima di fare questi assegnamenti dovresti dire che mioarray[0] è un array, cioé

    codice:
    var mioarray = [];
    
    mioarray[0] = [];
    mioarray[0][0]=variabile1;
    mioarray[0][1]=variabile2;
    mioarray[0][2]=variabile3;
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Grazie mille

    La questione di Jquery, era che navigando in rete ho trovato qualche metodo come .merge() per lavorare sugli array, ora anche se Jquery è una libreria, non sapevo se aveva un metodo di assegnazione diverso, o migliore nel caso specifico (ma come ho specificato non credevo esistesse).

    Ok, mi mancava la questione dell'assegnazione di =[] alla variabile... Quindi se ho ben capito,

    nel primo caso
    mioarray[0]=[valore,valore,valore]

    ho dentro al campo dell'array un array al poste di un valore. praticamente rimane un array monodimensionale ma con al suo interno più valori

    nel secondo caso
    mioarray[0][0]=valore

    é una classica matrice, quindi ho un sistema "tabellare" dei valori.

    Però mi sorge un dubbio, javascript nel primo caso capisce che sto inserendo un array, quindi per poter navigare all'interno, me lo trasfoma come nel secondo caso giusto?

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Quote Originariamente inviata da alemix Visualizza il messaggio
    Grazie mille

    praticamente rimane un array monodimensionale ma con al suo interno più valori
    no, in entrambi casi avrai un array bidimensionale , cambia solo il modo in cui assegni la seconda dimensione


    questo
    mioarray[0]=[variabile1,variabile2,variabile3]


    è equivalente a
    mioarray[0]=[]
    mioarray[0][0]=variabile1
    mioarray[0][1]=variabile2
    mioarray[0][2]=variabile3

    ma se dimentichi di inizializzare
    mioarray[0]=[]

    avrai un errore, visto che non puoi assegnare mioarray[0][0] a qualcosa (mioarray[0] ancora non è un array)

    più chiaro così?
    Ultima modifica di fcaldera; 08-05-2015 a 16:49
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Grazie mille... sisi tutto chiarissimo!

    ti chiedo un'ultima cosa (spero) che non sto capendo

    sto operando con php/mysql e chiamate ajax in quello che sto facendo.
    praticamente ho popolamento di una pagina da db mysql, siccome alcune variabili devo poi passarle via ajax le salvo dentro a degli array javascript in modo da poterle richiamare quando la pagina è caricata. l'esempio che ho postato nella primo post.

    L'assegnazione funziona, faccio una stampa con un alert direttamente al caricamento, e mi da i valori nella giusta posizione.

    Quando li richiamo però al caricamento della pagina, quindi da document ready, mi risulta sugli array a meno che non sia l'ultima colonna.

    Cioè se io ho 3 array

    mioarray[0][n]
    mioarray[1][n]
    mioarray[2][n]

    dove n è variabile, quando carico lo script mi funziona solo mioarray[2], e da console mi viene detto che mioarray[1] o mioarray[0] non sono assegnate (anche se prima del document ready me le stampa tranquillamente)

    Siccome prendo il primo indice dall'id del div dove schiaccio con la funzione .substring() ho provato a stampare l'indice... eppure è giusto. quindi non capisco perchè perda questa informazione

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.