Voglio fare una funzione che funziona in questo modo:Javascript cercare una matrice per un valore e ottenere la sua chiave
function arraySearch(array, valuetosearchfor)
{
// some code
}
se trova il valore della matrice, verrà restituito la chiave, dove ha trovato il valore. Se c'è più di un risultato (più di una chiave) o nessun risultato (niente trovato), la funzione restituirà FALSE.
ho trovato questo codice:
function arraySearch(arr,val)
{
for (var i=0; i<arr.length; i++)
{
if (arr[i] == val)
{
return i;
}
else
{
return false;
}
}
}
e utilizzati in questo modo:
var resultofarraycheck = arraySearch(board, chosen);
if (resultofarraycheck === false)
{
document.getElementById(buttonid).value;
chosen = 0;
}
Ma non sembra funzionare. Quando dovrebbe trovare qualcosa, restituisce false invece della chiave (i).
Come posso risolvere questo problema o cosa sto facendo male?
Grazie, e mi dispiace se il mio inglese non era abbastanza chiaro.
Spostare 'false' ritorno a * dopo * il' ciclo for'. (E pensa a gestire il caso con più risultati identici.) – DCoder
[La risposta di Iqbal Djulfri] (http://stackoverflow.com/a/13109873/1233508) è l'unica che soddisfa effettivamente le tue esigenze in merito alle chiavi duplicate. – DCoder