[JS] Vergelijkings Probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Mebus
  • Registratie: September 2006
  • Laatst online: 17-09 13:12
Ik heb nu de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
                                case 'SERVER':
alert(Data[1]);
                                    if(Data[1] == 'TRUE')
                                    {
alert('ja');
                                        server = true;

                                    }

                                    break;


Data[1] = TRUE en is een string geen bool. Er word ook TRUE gealert. Alleen zodra de vergelijking gemaakt word komt ie niet bij die tweede alert en word server niet op true gezet.

Zonder quotes ook al gedaan werkt ook niet of Data[1] eerst in een var zetten helpt ook niet. Ik heb het probleem wel eens eerder gehad geloof ik maar weet niet of ik er toen een oplossing voor had gevonden. Verder gebruik ik mootools en maak ik gebruik van Requests.

BABYMETAL LoL - Twitch


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 17-09 18:39

Matis

Rubber Rocket

Als je beide strings eens toLowerCase() doet en de TRUE tussen dubbelquotes. Misschien dat het dan beter werkt ;)

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Mebus
  • Registratie: September 2006
  • Laatst online: 17-09 13:12
code:
1
2
3
4
5
6
7
8
9
10
                                case 'SERVER':
alert(Data[1].toLowerCase());
                                    if(Data[1].toLowerCase() == "true")
                                    {
alert('ja');
                                        server = true;

                                    }

                                    break;


Werkt nog niet. Moeten jullie meer code zien?

BABYMETAL LoL - Twitch


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 17-09 18:39

Matis

Rubber Rocket

En als je eens debugt, wat zit er dan voor waarde in het Stringarray Data?

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:16

crisp

Devver

Pixelated

Matis schreef op zaterdag 07 november 2009 @ 19:54:
Als je beide strings eens toLowerCase() doet en de TRUE tussen dubbelquotes. Misschien dat het dan beter werkt ;)
waarom zouden doublequotes hier uitmaken? :?

Ik zou eerst eens beginnen met een alert(typeof(Data[1])) om zeker te zijn dat het een string is, hoewel een boolean true bij alerten lowercase 'true' geeft. Dan zou het misschien nog trailing of leading whitespace kunnen zijn in Data[1] die niet opvalt bij een alert; een Data[1].length zou dat kunnen verklappen.

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 17-09 18:23
Even wat anders, waarom gebruik je een string met true :? ? daar zijn booleans toch juist voor..

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 17-09 18:39

Matis

Rubber Rocket

crisp schreef op zaterdag 07 november 2009 @ 20:05:
waarom zouden doublequotes hier uitmaken? :?
Niet, meer smaak :P
Ik zou eerst eens beginnen met een alert(typeof(Data\[1])) om zeker te zijn dat het een string is, hoewel een boolean true bij alerten lowercase 'true' geeft. Dan zou het misschien nog trailing of leading whitespace kunnen zijn in Data\[1] die niet opvalt bij een alert; een Data\[1].length zou dat kunnen verklappen.
dat toLowerCase werkt toch niet op bools?

@hierboven, dat klopt. Typecasten van string naar boolean is ook voor TS een stuk eenvoudiger/

[ Voor 8% gewijzigd door Matis op 07-11-2009 20:11 ]

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Mebus
  • Registratie: September 2006
  • Laatst online: 17-09 13:12
Ik ga nog eens het 1 en andere proberen maar met TypeOf zij die dat het een string was. Whitespaces is ook een goede! is even kijken. Ik krijg dit terug van de server (Request) SERVER||TRUE dit split ik en dan krijg ik Data[0] en Data[1].

edit: alert(typeof(Data[1])); = string

edit: if(Data[1].trim() == 'TRUE')

Er waren blijkbaar toch whitespaces. Dankjewel!

[ Voor 21% gewijzigd door Mebus op 07-11-2009 20:22 ]

BABYMETAL LoL - Twitch


Acties:
  • 0 Henk 'm!

  • tonyisgaaf
  • Registratie: November 2000
  • Niet online
offtopic:
Kun je niet JSON door de server laten uitpoepen? Lijkt me iets makkelijker dan strings splitten en comparen

NL Weerradar widget Euro Stocks widget Brandstofprijzen widget voor 's Dashboard


Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Gebruik trouwens niet de trim functie op een string. Die is nonstandaard en werkt pas vanaf Firefox 3.5 / Javascript 1.8.1. Alle andere browsers hebben het dus niet.

De meeste javascript-frameworks (jQuery, Mootools, Prototype, ...) hebben wel een trim-functie ergens, maar als je er zelf een gaat schrijven, take your pick :)

日本!🎌

Pagina: 1