Avatar billede rix Novice
11. november 2011 - 17:39 Der er 9 kommentarer og
1 løsning

Søg i array

Jeg har en array som heder user som indeholder nogen brugernavne.
er der en function hvor man kan søge efter en navn?
Avatar billede JensPeterSvensson Nybegynder
11. november 2011 - 18:28 #1
Hvis du har objektet du søger efter kan du bruge indexOf:

users = ['Kaj', 'Andrea'];
index = users.indexOf('Kaj');
alert(i);


Ellers denne funktion burde virke:

function seach(arr, fn){
  for(var i = 0; i < arr.length; i++){
    if(fn(arr[i])){
      return i;
    }
  }
  return -1;
}

users = ['Kaj', 'Andrea'];

index = search(users, function(a){a == 'Kaj'});
alert(i);
Avatar billede JensPeterSvensson Nybegynder
11. november 2011 - 18:28 #2
der mangler et r i search i funktions navnet.
Avatar billede rix Novice
11. november 2011 - 18:41 #3
jeg ved ikke helt hvoefoe men når jeg prøver de to eks bliver resultet hele tiden -0 hvordan kan det være
Avatar billede rix Novice
11. november 2011 - 18:50 #4
fik det til at virke hvis du ville have de point så lig en svar
Avatar billede JensPeterSvensson Nybegynder
12. november 2011 - 12:49 #5
svar
Avatar billede olebole Juniormester
12. november 2011 - 17:26 #6
<ole>

I Explorer understøttes indexOf kun i version 9. Du kan dog skrive følgende kode - som er den, der er inbygget i de seneste browsere - øverst i dokumentet. Så vil indexOf virke på arrays i alle gængse browsere/versioner:


if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
        "use strict";
        if (this === void 0 || this === null) {
            throw new TypeError();
        }
        var t = Object(this);
        var len = t.length >>> 0;
        if (len === 0) {
            return -1;
        }
        var n = 0;
        if (arguments.length > 0) {
            n = Number(arguments[1]);
            if (n !== n) { // shortcut for verifying if it's NaN
                n = 0;
            } else if (n !== 0 && n !== Infinity && n !== -Infinity) {
                n = (n > 0 || -1) * Math.floor(Math.abs(n));
            }
        }
        if (n >= len) {
            return -1;
        }
        var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
        for (; k < len; k++) {
            if (k in t && t[k] === searchElement) {
                return k;
            }
        }
        return -1;
    }
}


/mvh
</bole>
Avatar billede rix Novice
11. december 2011 - 12:57 #7
olebole Du må undskyld jeg glemte denne tråd
men din eks. virker så hvis du ville have point så lig en svar
Avatar billede olebole Juniormester
11. december 2011 - 18:58 #8
Ellers tak, jeg samler ikke point. Spørg andre, der evt. måtte have bidraget til en løsning, og ellers læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede rix Novice
12. december 2011 - 14:42 #9
ok ^^
JensPeterSvensson hvis du ville have de point så lig en svar
Avatar billede rix Novice
16. december 2011 - 14:49 #10
nåå så tager jeg dem
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester