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

    [Domanda] FOR-IN in array bidimensionale

    Buona sera, ho un array bidimensionale dichiarato così:

    var myArray = new Array();

    myArray[0]=[0,1,2,3,4,5,6,7,8,9];
    myArray[1]=[0,1,2,3,4,5,6,7,8,9];
    myArray[2]=[0,1,2,3,4,5,6,7,8,9];


    Devo scorrere una dimensione con un ciclo for :

    for (var index = 0; index <= myArray.length; index++) {
    }

    Funziona bene ma vorrei usare un ciclo for in:

    for (var index in myArray)

    scrivendolo così non lavora bene. Sapete dirmi quale sarebbe la sintassi corretta?
    Grazie in anticipo.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Salve, cosa significa "non lavora bene"? Quale problema riscontri?

    All'interno del ciclo dovrai recuperare le voci dell'array in questo modo:
    codice:
    myArray[index];
    PS: nel primo modo che hai indicato fai attenzione che la proprietà length indica il numero totale di voci (nel tuo caso 3) ma l'indice, essendo in base 0, arriva a 3. Per cui, nella condizione, sarebbe meglio scrivere index <= myArray.length-1 o, più semplicemente, index < myArray.length
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Quote Originariamente inviata da inventable Visualizza il messaggio
    Funziona bene ma vorrei usare un ciclo for in
    Funziona bene perché è la sintassi corretta (ma sostituisci index <= myArray.length con index < myArray.length). Il ciclo for in invece andrebbe usato sempre e solo sugli oggetti e *mai* sugli array, in quanto in quest'ultimo caso ti ciclerà anche le proprietà non numeriche (tipo length, etc.)
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  4. #4
    Grazie per le risposte. Su index <= myArray.length avevo fatto una svista che ho già corretto. Molto interessante quello che dice carlomarx ma credo che un array sia un oggetto (infatti è stato dichiarato con new). Io non ho esperienza con Javascript, probabilmente for-in lavori diversamente che in Java e quindi non sia opportuno usarlo con gli oggetti perché, come dici tu, mi porta indietro anche le proprietà. Ora però, a questo punto, non so quando sia opportuno usare for-in

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Quote Originariamente inviata da inventable Visualizza il messaggio
    Molto interessante quello che dice carlomarx ma credo che un array sia un oggetto (infatti è stato dichiarato con new).
    Sì, in JS gli array sono oggetti a tutti gli effetti, ma con in più una collezione di metodi nativi utili per aver a che fare con proprietà che hanno come nomi dei numeri.

    Quote Originariamente inviata da inventable Visualizza il messaggio
    Ora però, a questo punto, non so quando sia opportuno usare for-in
    Tutte le volte che vorrai ciclare tutte le proprietà di un oggetto, numeriche e non. Non sarà il caso di usarlo invece quando vorrai ciclare solo le proprietà numeriche.

    Chiaro adesso?
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  6. #6
    Si, grazie Carlo!!!

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.