Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365

    unire due array in un unico

    Scusate l'ingoranza... mi rendo conto che è una domanda forse banale

    ma è possibile unire due array in modo da crearne uno solo?

    grazie

  2. #2

  3. #3
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    e grazie...

  4. #4
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    scusami saresti anche così gentile da spiegarmi xkè mi va in errore?

    inputs.concat is not a function

    codice:
    var inputs =  new Array;
    
    inputs = document.getElementsByTagName('input');  //array contenente tutti i campi di tipo input
    
    var selects = new Array;
    
    selects = document.getElementsByTagName('select'); //array contenente tutti i campi di tipo select
    
    var tutti = new Array;
    
    tutti = inputs.concat(selects);

  5. #5
    se non sbaglio la corretta definizione di un array e'

    new Array()

    con le tonde

    ad ogni modo secondo me ti conviene fare:

    var tutti = Array.concat(inputs, selects);

  6. #6
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    credo che in questo modo mi crea un array di array;

    xkè se l'array inputs ha 4 elementi e l'array select ha 2 elementi, dopo la funzione

    var tutti = Array.concat(inputs, selects);

    se provo a fare

    alert(tutti.length);

    mi restituisce 2

    che ne pensi?

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    l' intoppo e' nel credere che getElementsByTagName ritorni un array,
    ritorna un' HTMLCollection, una lista di elementi

    se vuoi ottenere un array a tutti gli effetti devi ciclare e fare push nel tuo array per ogni elemento della lista,
    poi puoi usare concat, sort, reverse ...

  8. #8
    Non proprio,

    con gli array creati "a mano" funziona proprio come ipotizzo io.

    nel senso che se tu crey un array ex novo e man mano lo riempi di oggetti, allora la funzione Array.concat() crea un nuovo array che e' il concatenemento dei precedenti

    Faccio un'ipotesi e aspetto che Xinod ci dica qualcosa di piu':

    Credo che cio' che viene restituito dal getElemensBy... non sia proprio un array ma un oggetto diverso.

    Infatti prova a fare alert(inputs)

    e dovresti vedere "object HTML Collection".

    A questo punto credo sia meglio fare due cicli for e creare il nuovo array cosi'

    edit: ecco, Xinod ha gia' risposto sopra!

  9. #9
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    a quanto pare non era così banale come pensavo,

    cmq ho imparato un altra cosa... vi ringrazio

    ps ho risolto scorrendo le due "collezioni" due volte con due for

    grazie ancora!

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.