Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    9

    manipolazione di stringhe

    Ho bisogno di estrarre due valori da una variabile. Ho provato ad usare il metodo slice() ma probabilmente c'è un errore che non riesco a trovare. Perchè i valori lat e lon sono nulli.
    In cosa sbaglio.

    var latlon = (41.12332, 17.32948394833949);
    var lat = (latlon.slice(1,",")); //estrai i dati dal carattere 1 fino alla "," esclusa
    var lon = (latlon.slice(" ",")"); //estrai i dati dal carattere " " al ")" esclusa

    risultato desiderato
    lat = 41.12332
    lon = 17.32948394833949

    Vorrei che fosse l'estrazione fosse dinamica perchè i valori di lat e lon sono variabili.

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    scusa ma questo
    var latlon = (41.12332, 17.32948394833949);
    non e' ne' una stringa ne' un array

    mettilo tra apici, non tra tonde, se, come sembra, vuoi fare lo slice di una stringa
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    9
    in realtà la mia variabile latlon la assegno dinamicamente dal risultato di una ricerca con le google api: inserisco un indirizzo e ne ricavo le coordinate di latitudine e longitudine. Quindi

    var latlon = [results[0].geometry.location];
    alert("latlon è " + latlon);

    output ----> latlon è (40.334434, 15.498549848934954)

    quindi devo estrarre i due valori numerici da questo tipo di variabile.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    allora e' gia' una stringa, farei cosi'
    var latlonArr=latlon.substring(1,latlon.length-1).split(', ');
    var lat=latlonArr[0];
    var lon=latlonArr[1];

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    9
    Ti ringrazio, ma il valore latlon.length-1 me risulta essere 1. :O come mai? e quindi non funziona.

  6. #6
    Secondo me non è una stringa. Se guardi sto esempio: http://code.google.com/apis/maps/doc...ion/geocoding/ geometry.location è un oggetto in quel json. E peraltro mi parrebbe molto strano che l'API ti ritorni una stringa. Magari qundo lo stampi nell'alert viene mostrato in quel modo perchè l'oggetto ha il metodo toString implementato.

    Secondo me ti basta fare

    var lat = latlon.lat, lng = latlon.lng

    Ti consiglio invece di usare gli alert per debugging di usare console.log e guardare l'output nella console del browser, in modo che gli oggetti vengano espansi. Funziona con chrome e con firebug almeno.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    9
    Originariamente inviato da mxa
    Secondo me non è una stringa. Se guardi sto esempio: http://code.google.com/apis/maps/doc...ion/geocoding/ geometry.location è un oggetto in quel json. E peraltro mi parrebbe molto strano che l'API ti ritorni una stringa. Magari qundo lo stampi nell'alert viene mostrato in quel modo perchè l'oggetto ha il metodo toString implementato.

    Secondo me ti basta fare

    var lat = latlon.lat, lng = latlon.lng
    probabilmente il tuo ragionamento è corretto, ma non funziona. ho provato anche
    var lat=[results[0].geometry.location.lat];
    ma nulla. Non sono riuscito a trovare informazioni relativi agli attributi lat e lng di location.


    Originariamente inviato da mxa
    Ti consiglio invece di usare gli alert per debugging di usare console.log e guardare l'output nella console del browser, in modo che gli oggetti vengano espansi. Funziona con chrome e con firebug almeno.
    hai ragione non sono esperto di Javascript. :P

  8. #8
    Questo codice è online da qualche parte dove si può provare?

    Altrimenti copia incolla tutto su jsfiddle.net e posta il link.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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 © 2024 vBulletin Solutions, Inc. All rights reserved.