Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.06.2012, 00:54
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

Функция 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 после каждого вызова функции =( помогите, плиз

Последний раз редактировалось Hekumok, 04.06.2012 в 00:59.
Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2012, 00:59
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Else не нужно. При нахождении соответствия ставь еще флаг. По окончанию цикла - если флаг не установлен значит алерт -1
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2012, 01:04
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

простите, дмитрий, else я сделал, т.к. я там мудрил с этим -1, и убрать забыл...а что такое "флаг" я не знаю...объясните, плиз =)
Ответить с цитированием
  #4 (permalink)  
Старый 04.06.2012, 01:14
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Флаг - просто любая переменная принимал щадя опр значение при выполнении условия
Ответить с цитированием
  #5 (permalink)  
Старый 04.06.2012, 01:14
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<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, Ксать - Вопрос - если в массива два совпадения ?
Ответить с цитированием
  #6 (permalink)  
Старый 04.06.2012, 01:19
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

дмитрий, а, ну я так и делал, но у меня там выводило -1 после каждого вызова функции! Может, я просто что-то не так делал...если нетрудно, можно скрипт?
Ответить с цитированием
  #7 (permalink)  
Старый 04.06.2012, 01:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Hekumok,
Мой не подошел ? (там false вместо -1
-1 может быть в массиве - если нет поменяйте false на -1
Ответить с цитированием
  #8 (permalink)  
Старый 04.06.2012, 01:23
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

Deff, если в массиве 2 совпадения, то нужно чтобы выводило номер каждого!
И Ваш скрипт хорош =) но мне нужно, чтобы если совпадений нет, то выводило -1
Ответить с цитированием
  #9 (permalink)  
Старый 04.06.2012, 01:24
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

Deff, спасибо, попробую =)
Ответить с цитированием
  #10 (permalink)  
Старый 04.06.2012, 01:24
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Hekumok,
Т.е на выходе должен быть массив ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java-скрипт для поиска. 2oo Общие вопросы Javascript 25 11.12.2010 13:10
Переодическое обновление значений для графика, функция для обновления значений yupa87 Общие вопросы Javascript 0 09.07.2009 14:48
Регулярное выражение для поиска смайлов. NightmareZ Общие вопросы Javascript 13 23.06.2009 13:12
Функция onclick для созданных потомков Groonel Общие вопросы Javascript 6 24.04.2009 18:35