chcę zrobić funkcję, która działa tak:JavaScript wyszukiwać tablicy dla wartości i uzyskać jego klucz
function arraySearch(array, valuetosearchfor)
{
// some code
}
jeżeli stwierdzi wartość w tablicy, zwróci klucz, gdzie stwierdzono, wartość. Jeśli istnieje więcej niż jeden wynik (więcej niż jeden klucz) lub brak wyników (nic nie znaleziono), funkcja zwróci FALSE.
znalazłem ten kod:
function arraySearch(arr,val)
{
for (var i=0; i<arr.length; i++)
{
if (arr[i] == val)
{
return i;
}
else
{
return false;
}
}
}
i stosować go tak:
var resultofarraycheck = arraySearch(board, chosen);
if (resultofarraycheck === false)
{
document.getElementById(buttonid).value;
chosen = 0;
}
Ale to nie wydają się działać. Kiedy powinno coś znaleźć, zwraca wartość false zamiast klucza (i).
Jak mogę to naprawić lub co robię źle?
Dzięki, i przepraszam, jeśli mój angielski nie był wystarczająco jasny.
Move 'return FALSE do * za *' for' pętla. (I pomyśl o obsłudze tego przypadku z wieloma identycznymi wynikami.) – DCoder
[Odpowiedź Iqbala Djulfri] (http://stackoverflow.com/a/13109873/1233508) jest jedynym, który faktycznie spełnia twoje wymagania dotyczące duplikatów kluczy. – DCoder