Javascript.RU

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

и снова здравствуйте =)
Неохота создавать новую тему, поэтому я напишу в этой...в общем, вот скрипт:
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
Ответить с цитированием
  #32 (permalink)  
Старый 04.06.2012, 09:49
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #33 (permalink)  
Старый 04.06.2012, 09:59
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

devote, спасибо, что-то я тупанул =)
Ответить с цитированием
  #34 (permalink)  
Старый 04.06.2012, 13:37
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

итак, это снова я =)
Мне нужно создать функцию 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 , хотя должно быть пусто!
Ответить с цитированием
  #35 (permalink)  
Старый 04.06.2012, 13:49
Профессор
Отправить личное сообщение для beard Посмотреть профиль Найти все сообщения от beard
 
Регистрация: 08.05.2012
Сообщений: 264

func = true

нужно
func == true
Ответить с цитированием
  #36 (permalink)  
Старый 04.06.2012, 13:52
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

я так уже пробовал, выводит пустое окно:
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'
Ответить с цитированием
  #37 (permalink)  
Старый 04.06.2012, 13:56
Профессор
Отправить личное сообщение для beard Посмотреть профиль Найти все сообщения от beard
 
Регистрация: 08.05.2012
Сообщений: 264

func() == true
Ответить с цитированием
  #38 (permalink)  
Старый 04.06.2012, 14:08
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

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

Maxmaxmaximus, но мне нужно чтобы именно через var res = filter(arr, function() {...}) , a не var res = arr.filter(function() {...}) !
Ответить с цитированием
  #40 (permalink)  
Старый 04.06.2012, 15:08
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Hekumok,
Эт не Важно как - поставь свою переменную
Maxmaxmахimus
Гы, чувствую себя неловко, с равной кармой

Последний раз редактировалось Deff, 04.06.2012 в 15:10.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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