Visualizzazione dei risultati da 1 a 8 su 8

Discussione: find in array di array

  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    find in array di array

    var province = [ ["84", "Agrigento", "19"], ["6", "Alessandria", "1"], ["42", "Ancona", "11"] ]

    supponendo di avere un oggetto di questo tipo vorrei trovare (anche con IE) il sottovettore corrispondente a codice "42", in questo caso Ancona


    Debbo fare un ciclo o esiste un mezzo nativo?
    Pietro

  2. #2

    Re: find in array di array

    Originariamente inviato da pietro09
    var province = [ ["84", "Agrigento", "19"], ["6", "Alessandria", "1"], ["42", "Ancona", "11"] ]

    supponendo di avere un oggetto di questo tipo vorrei trovare (anche con IE) il sottovettore corrispondente a codice "42", in questo caso Ancona


    Debbo fare un ciclo o esiste un mezzo nativo?
    esiste un mezzo nativo
    Non so se esiste un mezzo nativo, però prova con questo:
    codice:
    var province = [ ["84", "Agrigento", "19"], ["6", "Alessandria", "1"], ["42", "Ancona", "11"] ]
    //numero di oggetti da estrarre da "province"
    const numeroOggetti = 3;
    
    for (i=0;i<province.length;i++) {
    	if (province.indexOf(i) == "42") {
    		for (k=0;i=0;i<numeroOggetti;i++) {
    			provinciaAncora [k]=province[i+k];
    		}
    	break;
    	}
    }

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ringrazio e corro a provare

    Pietro

  4. #4
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Esiste un mezzo nativo, ma io preferisco il ciclo. Per conoscenza:

    codice:
    var province = [ ["84", "Agrigento", "19"], ["6", "Alessandria", "1"], ["42", "Ancona", "11"] ];
    
    function trova (cosa) {
    	var nFound = -1;
    	province.some(function (vElement, nIndex /*, aArray */) { return vElement[0] === this[0] ? (nFound = nIndex, true) : false; }, arguments);
    	return nFound;
    }
    
    alert(trova("42"));
    // hai ottenuto la posizione di quello che cercavi

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    in effetti anch'io preferisco un ciclo, anche perchè non so se IE7 lo digerisca.

    Pietro

  6. #6
    pietro09, il mio ciclo funziona?

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da xxstykkyxx
    pietro09, il mio ciclo funziona?
    c'è qualche errore di sintassi ma soprattutto è che indexOf non va con IE7

    ciao
    Pietro

  8. #8
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Usa questa che non fa uso di indexOf:

    codice:
    var province = [ ["84", "Agrigento", "19"], ["6", "Alessandria", "1"], ["42", "Ancona", "11"] ];
    
    function trova (cosa) {
    	for (var nIndexOf = province.length - 1; nIndexOf > -1 && province[nIndexOf][0] !== cosa; nIndexOf--);
    	return nIndexOf;
    }
    
    alert(trova("42"));
    // hai ottenuto l'indice di quello che cercavi

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.