Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   for ... in и функции (https://javascript.ru/forum/misc/10059-i-funkcii.html)

KOLANICH 17.06.2010 15:15

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

Kolyaj 17.06.2010 15:19

В JS нет ассоциативных массивов. Есть объекты.
for (var i in obj) {
    alert(i);
}

KOLANICH 17.06.2010 15:20

но их можно юзать как ассоц массивы

Skipp 17.06.2010 15:21

KOLANICH,
а вы пытались посмотреть что у вас выходит?
код приведите

KOLANICH 17.06.2010 16:36

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());//это в экзек засунул для проверки

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

Skipp 17.06.2010 16:43

KOLANICH,
а в чём тогда проблема?

KOLANICH 17.06.2010 16:43

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

Skipp 17.06.2010 16:49

а alert("this.custom = " + this.custom + ", cf = " + cf + " this.custom[cf] = " + this.custom[cf]) что выдаёт?

KOLANICH 17.06.2010 17:03

это в блоке for in?
содержимое этого блока вообще не исполняется почему-то

Skipp 17.06.2010 17:05

KOLANICH,
да в нём.

Тогда смотрит код до него.


Часовой пояс GMT +3, время: 07:25.