login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[JS] in array checken

Offline Sc0tTy - 11/01/2006 16:11
Avatar van Sc0tTyPHP interesse ik heb een paar vars , en die moeten gechecked worden of ze in een array staan , ik kan alleen nergens vinden hoe dit moet in JS , in php is dat in_array();

wat is de functie voor JS ?

10 antwoorden

Gesponsorde links
Offline nemesiskoen - 11/01/2006 16:15
Avatar van nemesiskoen Gouden medaille

PHP expert
Ik weet niet of het bestaat in JS. Zo zou het er moeten uitzien:

  1. function in_array(arr, string) {
  2. for(var i=0;i<arr.length;i++) {
  3. if(arr[i] == string) return true;
  4. }
  5. return false;
  6. }
Offline haytjes - 11/01/2006 16:16 (laatste wijziging 11/01/2006 16:25)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
  1. <script>
  2. if (typeof(arr) == "object")
  3. {
  4. ...
  5. }
  6. </script>


aangezien een array gelijk is aan een object (in javascript)

[edit]
mis gelezen, 'k dacht dat je is_array() wou

[edit2]
code:
  1. <script>
  2. Array.prototype.in_array = function (element) {
  3. for (var i = 0; i < this.length; i++) {
  4. if (this[i] == element) {
  5. return true;
  6. }
  7. }
  8. return false;
  9. };
  10. </script>

gebruik:
nu kan je bij alle Arrays het volgende doen:
  1. if( arr.in_array("value"))
  2. {
  3.  
  4. }


bron
Offline Maarten - 11/01/2006 16:21
Avatar van Maarten Erelid http://blog.kli...ray_f.html

Het bestaat dus niet op zich, maar op die link staat een namaak. Die van Koen zou overigens ook werken.
Offline Thomas - 11/01/2006 16:24
Avatar van Thomas Moderator Hmpf, array.length klopt vaak niet.
En twee return statements is lelijk .

Maar het werkt... Ik zou het anders doen, maar das een kwestie van smaak.
Offline nemesiskoen - 11/01/2006 16:30 (laatste wijziging 11/01/2006 16:34)
Avatar van nemesiskoen Gouden medaille

PHP expert
  1. function in_array(arr, string) {
  2. var a = false;
  3. for(var i=0;i<arr.length;i++) {
  4. if(arr[i] == string) a = true;
  5. }
  6. return a;
  7. }


Zo beter?
(ik weet niet of javascript === ondersteund:))

@haytjes: wilde ik eerst ook doen, maar dan kan het ook zijn dat het NULL terugstuurd. Heb nu aangepast dat het a terugstuurd en niet NULL kan terugsturen.
Offline haytjes - 11/01/2006 16:30 (laatste wijziging 11/01/2006 16:40)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
@FangorN: idd van die array.length en ook van niet oplopende keys.
@ nemesiskoen: doe dan toch gewoon return a EN jouw code is vele malen trager

aangepaste versie: (dit plaats je in de <head>)
  1. <script>
  2. Array.prototype.in_array = function (element)
  3. {
  4. var retur = false;
  5. for (var values in this)
  6. {
  7. if (this[values] == element)
  8. {
  9. retur = true;
  10. break;
  11. }
  12. }
  13. return retur;
  14. };
  15. </script>


voorbeeldje van hoe het werkt:
  1. <script>
  2. arr = Array("value1","value2","value3");
  3.  
  4. arr.in_array("testd"); // false
  5. arr.in_array("value2"); // true
  6. arr.in_array("value4"); // false
  7. </script>


@nemesiskoen, kan zijn, heb break nog niet veel gebruikt. heb het aangepast.
Offline nemesiskoen - 11/01/2006 16:37
Avatar van nemesiskoen Gouden medaille

PHP expert
Moet retur = true niet _voor_ de break staan? Met break spring je er toch DIRECT uit of niet?
Offline Sc0tTy - 11/01/2006 16:47
Avatar van Sc0tTy PHP interesse @haytjes ik zal die is proberen, als ik jouw was zou ik em bij scripts plaatsen , ik denk dat meer mensen dit handig zullen vinden (ckr voor JS nubs zoals ik ;) ), als je hier geen zin in hebt doe ik et wel voor je met jouw credits erbij
Offline haytjes - 11/01/2006 16:48 (laatste wijziging 11/01/2006 16:50)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
@Sc0tTy: voor n00b idd wel gemakkelijk, zal het er direct erop zetten

[edit]'k vraag me wel af in welke categorie:p
Offline nemesiskoen - 11/01/2006 16:55
Avatar van nemesiskoen Gouden medaille

PHP expert
http://www.site...amp;cat=98 ???
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.267s