2013-07-01 22 views
6

Im ottenendo un errore: Uncaught TypeError: Impossibile leggere la proprietà '1' di null Origine: X.push (controllare [1]);Unchaught TypeError: Impossibile leggere la proprietà '1' di null

qual è il problema?

wspolrzedne.value = testo digitato in textArea così: "2.4 5 1 67 15 67"

Così forse il problema è siccome il titanio non lo faccio sicuro che stringa con \ n come nuova linea?

var coordinates = wspolrzedne.value.split("\n"); 
    var X = []; 
    var Y = []; 


    for(var i = 0; i < coordinates.length; ++i) { 
     var check = coordinates[ i ].match(/^([0-9]+.[0-9]*) ([0-9]+.[0-9]*)$/); 

     if(check == false) { 
       var zlewspolrzedne = Ti.UI.createAlertDialog({ 
       title: "Niew?a?ciwe wspó?rz?dne: " + coordinates[ i ], 
       buttonNames: ['Popraw'], 
       cancel: 0 
      }); 
      zlewspolrzedne.show(); 
     } 

     X.push(check[ 0 ]); 
     Y.push(check[ 1 ]);  

    } 
+0

Dove si prevede che '\ n' venga visualizzato nella stringa? Chiaramente la tua regex non corrisponderà alla stringa completa. Per tua informazione, puoi usare il modificatore 'm' sulla regex per ridefinire'^'e' $ 'come corrispondenti all'inizio e alla fine di una riga invece che all'inizio e alla fine della stringa. –

+0

... e se 'check' è nullo, allora non so perché non si lamenterebbe dell'indice' 0'. Manca qualcosa. –

+0

ho dimenticato di entrare nel mio esempio. im digitare in textarea 2 numeri in ogni riga – lol2x

risposta

2

Questo perché textArea non si preoccupa linebreaks, il suo solo un semplice spazio bianco. Quindi la soluzione è dividere per '' e quindi concatene ciascuno di due (o alimentare ogni coppia direttamente alla matrice di controllo e controllare il loro contenuto al volo).

Edit:

Ok, quindi il problema è questa linea:

var check = coordinates[ i ].match(/^([0-9]+.[0-9]*) ([0-9]+. [0-9]*)$/) 

Si assegna un solo valore invece di due.

+0

Ho verificato che textArea invii interruzioni di riga in modo corretto. – lol2x

+0

vuoi dire che puoi abbinarli con "\ n"? –

+0

esattamente posso farlo, ma le altre cose non funzionano. :/ – lol2x

Problemi correlati