и снова здравствуйте =)
Неохота создавать новую тему, поэтому я напишу в этой...в общем, вот скрипт: var massive = [2, 'crack', 3, 6, 'find', 2] ; var end = [ ] ; function filter(arr, min, max) { for (var key in arr) { function isNumeric( ) { if (!isNaN (parseFloat(arr[key])) && isFinite(arr[key])) {if (arr[key] >= min && arr[key] <= max) end.push(arr[key]) } ; } ; isNumeric( ) ; } } ; filter(massive, 0, 5); alert (end) ; // 2,3,2 Здесь всё правильно, но у меня не получается сделать так, чтобы элементы сохранялись не в переменную end, a в переменную, вызвавшую функцию? Bom пример: var filter_end = filter(massive, 0, 5) ; // теперь filter_end = [2, 3, 2] alert (filter_end) ; // 2,3,2 |
function filter( arr, min, max ) { var end = []; for ( var key in arr ) { if ( !isNaN( parseFloat( arr[ key ] ) ) && isFinite( arr[ key ] ) ) { if ( arr[ key ] >= min && arr[ key ] <= max ) { end.push( arr[ key ] ) } } } return end; } var massive = [2, 'crack', 3, 6, 'find', 2]; var filter_end = filter( massive, 0, 5 ); alert( filter_end ) ; // 2,3,2 |
devote, спасибо, что-то я тупанул =)
|
итак, это снова я =)
Мне нужно создать функцию filter(arr, func), которая получает массив arr и возвращает новый, в который входят только те элементы arr, для которых func возвращает true. Вот такой у мя получился скрипт, но у меня почему-то получается, что func всегда возвращает true, даже если, как в примере ниже, указать, чтобы она возвращала false. function filter(arr, func) { for (var key in arr) { function isNumeric( ) { if (!isNaN (parseFloat(arr[key])) && isFinite(arr[key])) {if (func = true) end.push(arr[key])} ; } ; isNumeric( ) ; } ; return end ; } ; var end = [ ] ; var massive = [1, 'endof', 'trial', 5, 1, 3, 'call', 7] ; var proba = filter(massive, function() {return false }) ; alert (proba) ; // 1,5,1,3,7 , хотя должно быть пусто! |
func = true нужно func == true |
я так уже пробовал, выводит пустое окно:
function filter(arr, func) { for (var key in arr) { function isNumeric( ) { if (!isNaN (parseFloat(arr[key])) && isFinite(arr[key])) {if (func == true) end.push(arr[key])} ; } ; isNumeric( ) ; } ; return end ; } ; var end = [ ] ; var massive = [1, 'endof', 'trial', 5, 1, 3, 'call', 7] ; var proba = filter(massive, function() {return true }) ; alert (proba) ; // пусто, а должно '1,5,1,3,7' |
func() == true |
спасибо, получилось, но теперь не пойму, как сделать, чтобы при
var arr = [1, 'endof', 'trial', 5, 1, 3, 'call', 7] ; var res = filter(arr, function(a) {return a >= 3 && a <= 5 ;}) ; alert (res) ; был результат 5, 3 |
Maxmaxmaximus, но мне нужно чтобы именно через var res = filter(arr, function() {...}) , a не var res = arr.filter(function() {...}) !
|
Hekumok,
:yes: Эт не Важно как - поставь свою переменную Maxmaxmахimus Гы, чувствую себя неловко, с равной кармой |
Часовой пояс GMT +3, время: 10:26. |