|
Функция find для поиска в массиве
Итак, здравствуйте =)
Мне нужно создать функцию find (arr, value), которая ищет в массиве arr значение value и возвращает его номер, если найдено, или -1, если не найдено. Вот что получилось (без вывода -1, если не найдено): var massive = [2, 'crack', 'find', 2] ; var mass = [5, 'al', 1] ; var b = function(arr, value) { for (var i = 0; i < arr.length; i++) { if (value == arr[i]) {alert(i)} else if (value !== arr[i]) {continue} } ; } ; b(massive, 2) ; // 0, 3 b(mass, 'al') ; // 1 b(mass, 2) ; // b(massive, 'al') ; // Вот, всё норм, выводит номер, если значение есть. Но у меня никак не получается сделать, чтобы, если значение не найдено, выводило -1, уже несколько способов перепробовал, результат - нулевой, либо выводит -1 после каждого вызова функции =( помогите, плиз |
Else не нужно. При нахождении соответствия ставь еще флаг. По окончанию цикла - если флаг не установлен значит алерт -1
|
простите, дмитрий, else я сделал, т.к. я там мудрил с этим -1, и убрать забыл...а что такое "флаг" я не знаю...объясните, плиз =)
|
Флаг - просто любая переменная принимал щадя опр значение при выполнении условия
|
<script type="text/javascript"> var Arr_1 = [2, 'crack', 'find', 2]; function Find_El_Array ( arr, val ) { for(var i in arr) {if (val == arr[i]) return i; } return false; } alert( Find_El_Array (Arr_1, 2) ) alert( Find_El_Array (Arr_1, 1) ) </script> Дубово - но стандартно Hekumok, Ксать - Вопрос - если в массива два совпадения ? |
дмитрий, а, ну я так и делал, но у меня там выводило -1 после каждого вызова функции! Может, я просто что-то не так делал...если нетрудно, можно скрипт?
|
Hekumok,
:) Мой не подошел ? (там false вместо -1 -1 может быть в массиве - если нет поменяйте false на -1 |
Deff, если в массиве 2 совпадения, то нужно чтобы выводило номер каждого!
И Ваш скрипт хорош =) но мне нужно, чтобы если совпадений нет, то выводило -1 |
Deff, спасибо, попробую =)
|
Hekumok,
Т.е на выходе должен быть массив ? |
Часовой пояс GMT +3, время: 03:21. |
|