prototype fout?

Status
Niet open voor verdere reacties.

bn2vs

Terugkerende gebruiker
Lid geworden
18 aug 2007
Berichten
1.705
Hey,

Ziet iemand iets verkeerd aan deze code?

Code:
 Array.prototype.contains = function(obj) {
	var i = this.length;
	while (i--) { if (this[i] === obj) { return true } };
	return false;
}

Ik krijch enkele errors in een paar JS API's die ik gebruik als ik dit ergens tussen wat JS gooi.

Alvast dedankt :)

Cheers
BN
 
ik ken geen javascript, maar "while (i--)"...

Het lijkt me dat er tussen de haakjes een statement moet staan die true of false moet kunnen zijn. Aangezien 'i--' geen true of false oplevert, kan dit niet, lijkt me.. (Of javascript moet hier juist een functie voor hebben :p)
 
i-- resulteert in een getal, wat altijd true is, behalve als het 0 is, dus dan stop de loop. Is de fout niet lijkt me.
 
Als ik het wat netter opmaak:
Code:
Array.prototype.contains = function(obj) {
  var i = this.length;
  while (i--)
  {
    if (this[i] === obj)
    {
      return true
    }
  };
  return false;
}

Dan zou ik zeggen dat de puntkomma achter de 5de accolade weg moet en dat er een achter "return true" moet komen.
 
Zo te zien werkt je code gewoon.
Code:
Array.prototype.contains = function(obj) {
  var i = this.length;
  while (i--)
  {
    if (this[i] === obj)
    {
      return true
    }
  };
  return false;
}

var b = {};
var t = ['test',b, {"*****":"***"}];
alert(t.contains('test'));
alert(t.contains(b));
alert(t.contains({"*****":"***"}));

welke andere frameworks/libraries gebruikje?

Het kan zijn data Prototype fouten geeft
 
if (this === obj)


zou het die drie keer = kunnen zijn?

of misschien even met de puntkomma's vogelen?

return true;
 
De code is in orde... Hij conflicteerd met iets anders. Waarschijnlijk een andere library die iets toevoegd aan de prototype
 
dicabrio: daar was ik al bang voor. Heb nu gewoon een functie van die code gemaakt (minder ideale oplossing mja), en heb geen problemen meer.

Thnx idereen voor de help :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan