Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 17.11.2014, 15:24
Интересующийся
Отправить личное сообщение для Brainsss Посмотреть профиль Найти все сообщения от Brainsss
 
Регистрация: 17.11.2014
Сообщений: 10

Сообщение от Erolast Посмотреть сообщение
Потому что функция example ничего не вернула - логично, да?
А как должно быть?
function example(arr, func) {
	for (var i = 0; i < arr.length; i++) {
		func(arr[i], i);
		}
		return func();
	}

так?
Ответить с цитированием
  #12 (permalink)  
Старый 17.11.2014, 15:26
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Brainsss, а что ты хочешь, чтобы она возвращала?
Ответить с цитированием
  #13 (permalink)  
Старый 17.11.2014, 15:29
Интересующийся
Отправить личное сообщение для Brainsss Посмотреть профиль Найти все сообщения от Brainsss
 
Регистрация: 17.11.2014
Сообщений: 10

Результат операции над элементами массива.
function example(arr, func) {
	for (var i = 0; i < arr.length; i++) {
		func(arr[i], i);
		}
	}
var a = example(['abc', 'def', 'ghi'], function (elem) {
	console.log(elem)
	return typeof elem === 'string';
});
console.log(a);

в данном случае должно быть true.
Ответить с цитированием
  #14 (permalink)  
Старый 17.11.2014, 15:31
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Brainsss, ну так ведь не логично. У тебя же несколько элементов в массиве, следовательно, на каждый элемент своя операция, а вернуть должно что-то одно.
Ответить с цитированием
  #15 (permalink)  
Старый 17.11.2014, 15:34
Интересующийся
Отправить личное сообщение для Brainsss Посмотреть профиль Найти все сообщения от Brainsss
 
Регистрация: 17.11.2014
Сообщений: 10

А нельзя так сделать, что бы проверяло каждый элемент, и если все тру то тру, если хоть один фолс, то и возвращает фолс?
Ответить с цитированием
  #16 (permalink)  
Старый 17.11.2014, 15:37
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от Brainsss Посмотреть сообщение
А если нам нужно что то возвращать? Например такой код
function example(arr, func) {
	for (var i = 0; i < arr.length; i++) {
		func(arr[i], i);
		}
	}
var a = example(['abc', 'def', 'ghi'], function (elem) {
	return typeof elem === 'string';
});
console.log(a);

Почему выводит undefined? И как сделать что бы с return нормально работало?
function example(arr, func) {
   try{
	for (var i = 0; i < arr.length; i++) {
		func(arr[i], i);
		}
      }catch(e){return e}
	}
var a = example(['abc', 'def', 'ghi'], function (elem) {
	throw typeof elem === 'string';
});
console.log(a);
Ответить с цитированием
  #17 (permalink)  
Старый 17.11.2014, 15:44
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Brainsss,

function arrayTypeOf(array, type) {
    for(var i=0; i<array.length; i++) {
        if(typeof array[i] != type) return false;
    }
    return true;
};



var a = arrayTypeOf(['abc', 'def', 'ghi'], 'string');
alert(a); //true

var b = arrayTypeOf(['abc', 'def', 5], 'string');
alert(b); //false

var c = arrayTypeOf([1, 4, 2], 'number');
alert(c); //true
Ответить с цитированием
  #18 (permalink)  
Старый 17.11.2014, 15:47
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Сообщение от krutoy Посмотреть сообщение
function example(arr, func) {
   *!*try{*/!*
	for (var i = 0; i < arr.length; i++) {
		func(arr[i], i);
		}
      *!*}catch(e){return e}*/!*
	}
var a = example(['abc', 'def', 'ghi'], function (elem) {
	*!*throw*/!* typeof elem === 'string';
});
console.log(a);
Что за новый прием?
Ответить с цитированием
  #19 (permalink)  
Старый 17.11.2014, 15:49
Интересующийся
Отправить личное сообщение для Brainsss Посмотреть профиль Найти все сообщения от Brainsss
 
Регистрация: 17.11.2014
Сообщений: 10

Да, это понятно, но смысл в том что должна быть именно функция в параметрах которой тоже функция( в которой могут меняться условия для проверки элементов массива и индексов эл массива). Но все равно спасибо.
Ответить с цитированием
  #20 (permalink)  
Старый 17.11.2014, 15:51
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Brainsss, для таких случаев есть нативный метод массива - filter. Рекомендую почитать про него.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача в функцию переменного количества аргументов Эдди Элементы интерфейса 35 09.11.2018 15:25
передача объекта через параметр функции PHP zhurchik Серверные языки и технологии 1 06.12.2012 15:24
передача функции с параметрами в функцию oli Общие вопросы Javascript 3 09.08.2012 13:52
Передача значения из функции в функцию wine-time Общие вопросы Javascript 4 18.09.2011 17:39
Передача функции другой функции ntro123 jQuery 3 20.02.2011 12:15