Javascript.RU

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

for ... in и функции
как сделать for ... in по ассоциативному массиву функций
обычный for тут не подходит
а for ... in не пашед

Последний раз редактировалось KOLANICH, 17.06.2010 в 15:22.
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2010, 15:19
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

В JS нет ассоциативных массивов. Есть объекты.
for (var i in obj) {
    alert(i);
}
Ответить с цитированием
  #3 (permalink)  
Старый 17.06.2010, 15:20
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

но их можно юзать как ассоц массивы
Ответить с цитированием
  #4 (permalink)  
Старый 17.06.2010, 15:21
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

KOLANICH,
а вы пытались посмотреть что у вас выходит?
код приведите
__________________
.
Ответить с цитированием
  #5 (permalink)  
Старый 17.06.2010, 16:36
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

this.addCustom=function(func,name){
		if(!func||!name)throw new Error("Required parameters expected");
		this.custom[name]=func;
	
	}
...

this.exec(){
...
for(var cf in this.custom){
console.log("custom function check");

					if(custom[cf](elements[i])){
						this.results[cf].push(elements[i]);
						this.found++;
					}
				}

}

...
rx.addCustom(function(el){console.log(el.href);return true;},"links");
rx.exec();

однако
console.log(this.custom["links"].toSource());//это в экзек засунул для проверки

выдаёт код функции
это значит, что функция в массиве

Последний раз редактировалось KOLANICH, 17.06.2010 в 16:44.
Ответить с цитированием
  #6 (permalink)  
Старый 17.06.2010, 16:43
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

KOLANICH,
а в чём тогда проблема?
__________________
.
Ответить с цитированием
  #7 (permalink)  
Старый 17.06.2010, 16:43
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

в том, что не работает через for ... in
это я вижу по тому, что в консоли нет собщений "custom function check" и не выполняются действия в теле функции (безымянной)

Последний раз редактировалось KOLANICH, 17.06.2010 в 16:46.
Ответить с цитированием
  #8 (permalink)  
Старый 17.06.2010, 16:49
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

а alert("this.custom = " + this.custom + ", cf = " + cf + " this.custom[cf] = " + this.custom[cf]) что выдаёт?
__________________
.
Ответить с цитированием
  #9 (permalink)  
Старый 17.06.2010, 17:03
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

это в блоке for in?
содержимое этого блока вообще не исполняется почему-то
Ответить с цитированием
  #10 (permalink)  
Старый 17.06.2010, 17:05
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

KOLANICH,
да в нём.

Тогда смотрит код до него.
__________________
.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменная как значение функции. Jurasmi Общие вопросы Javascript 7 22.04.2010 12:45
Подскажите, как работает простой код (замыкание функции)? Dotod Общие вопросы Javascript 5 02.12.2009 04:03
Возвращение значения из функции dba Events/DOM/Window 21 06.10.2009 01:33
Паралельное выполнение одной и той-же функции Сеня AJAX и COMET 3 24.01.2009 20:59
владелец функции diagnost Общие вопросы Javascript 6 30.10.2008 15:04