04.06.2012, 01:29
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Hekumok,
<script type="text/javascript">
var Arr_1 = [2, 'crack', 'find', 2];
function Find_El_Array ( arr, val ) {
var array_OUT = [];
for(var i in arr) {if (val == arr[i]) array_OUT.push(i);}
if(array_OUT.length) return array_OUT;
return -1;
}
alert( Find_El_Array (Arr_1, 2) )
alert( Find_El_Array (Arr_1, 1) )
</script>
|
|
04.06.2012, 01:34
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
Deff, попробовал ваш скрипт, вставив -1 вместо false, вывело почему-то три нуля:
var massive = [2, 'crack', 'find', 2] ;
var mass = [5, 'al', 1] ;
function find(arr, val) {
for (var i in arr) {
if (value = arr[i]) return i ;}
return -1 ; } ;
alert(find(massive, 2)) ;
alert(find(mass, 'al')) ;
alert(find(mass, 2)) ;
alert(find(massive, 'al')) ;
|
|
04.06.2012, 01:37
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
Deff, нет, на выходе массив не нужен...нужно просто, чтобы через alert вывело номер значение, если есть совпадение, если 2 совпадения, то должно быть 2 алерта с номерами, а если нет совпадений, то должно вывести -1
|
|
04.06.2012, 01:37
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Hekumok,
Три 0 занчит три элемента первых в списке - Первый элемент 0 -номер
массивы начинаются с 0
|
|
04.06.2012, 01:39
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Hekumok
|
Deff, нет, на выходе массив не нужен...нужно просто, чтобы через alert вывело номер значение, если есть совпадение, если 2
|
Если есть совпадения - То выводится массив Номеров совпадений
к примеру
1, 2, 3 (Совпали
----------------------
можно сделать строку цифр через запятую, но тогда вам придется цифры вычленять из строки
в так перебираете массив ответных совпадений в цикле
Последний раз редактировалось Deff, 04.06.2012 в 01:41.
|
|
04.06.2012, 01:41
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
Deff, да я знаю, что с нуля элементы начинаются, но с такими массивами
var massive = [2, 'crack', 'find', 2] ;
var mass = [5, 'al', 1] ;
должно было вывести
alert(find(massive, 2)) ; // 0, 3
alert(find(mass, 'al')) ; // 1
alert(find(mass, 2)) ; // -1
alert(find(massive, 'al')) ; // -1
|
|
04.06.2012, 01:44
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Hekumok,
Первый код был расчитан на одно совпадение(У Всех) - подставляйте во второй
Короткие имена типа Find - лучше не делать - подобные операторы часто есть в библиотеках
|
|
04.06.2012, 01:44
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
Deff, лучше бы конечно, чтобы через "алерт" выводило каждое совпадение, но можно и как вы предложили с новым массивом
Последний раз редактировалось Hekumok, 04.06.2012 в 01:47.
|
|
04.06.2012, 01:45
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
Сообщение от Deff
|
Hekumok,
Первый код был расчитан на одно совпадение(У Всех) - подставляйте во второй
|
Не понял чё-та...
|
|
04.06.2012, 01:46
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Hekumok,
Пост 12
|
|
|
|