Как сохранить возвращаемые значения из вызова .each в массив

0

У меня есть функция, которую я вызываю:

CreateNode(e,control);// which will return an ID.  
                      // e i leave alone, but i was thinking that i 
                      // could pass the object into the function this way optionally.


function CreateNode(e, control){
if(!control) control = this;
// for rest of function, calls to the object are $(control) instead of $(this).
//...
}

Затем у меня есть селектор, который я хочу перебрать:

$(control_group).each(createNode);

Есть ли способ создать список IDS из этого, например:

var arr = [];
arr.push($(control_group).each(createNode));

Я делаю recurive control builder, который создает элементы управления в элементах управления, и поэтому я хочу вернуть идентификаторы в дочерний атрибут. Это то, что я собирался делать с обр.

Моя одна идея делала что-то простое:

var arr = [];
$(control_group).each(function(e){
    arr.push(createNode(e,$(this));
});
Теги:

1 ответ

4
Лучший ответ

Это именно то, что делает .map():

var arr = $(control_group).map(createNode).get();

.map() возвращает объект jQuery; если вам нужен обычный массив, вам нужно .get() его.

  • 0
    Кажется, в моем случае возвращается массив первого размера, последнее выполнение createNode из .map (). Есть ли что-то еще, что я не знаю /
  • 0
    Что такое $(control_group) ? Обратите внимание, что map() может не передавать нужные параметры.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню