@KodeKod

$.each как вывести переменную из функции?

Помогите разобраться
Есть цикл

var test = 0;
$.each(b, function (i, item) {
  var test = test+ item;
  alert(test); // Выводит
});
alert(test); // ничего нет


Как сделать, чтобы сохранялось за приделами цикла, или возможно есть другой способ как можно i, если оно не по порядку идет, вообще в моем случае массив такой
'value' => array(
  '1asdad' => 'Номер 1',
  quas21' => 'Номер 2',
),
  • Вопрос задан
  • 300 просмотров
Решения вопроса 2
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Я думаю, Вам нужно перестать переопределять переменную внутри цикла, т.к. лично у меня и "внутри" ничего не выводит. Выглядеть это будет так:

var test = 0;
$.each(b, function(i, item) {
  test = test+ item;
  alert(test); // Выводит
});
alert(test);


Если нужно сохранить родительскую область видимости внутри функции, то так:
var test = 0;
$.each(b, (i, item) => {
  test = test+ item;
  alert(test); // Выводит
});

alert(test);
Ответ написан
Комментировать
daemonhk
@daemonhk
ПсиХоПат
"Короче, Склифосовский..." (с) Уберите объявление переменной внутри цикла, вы ее переопределяете, поэтому она не видна потом, т.е. должно получиться test = test+ item;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Погуглите про контекст, области видимости и замыкания, в идеале Фленегана прочитайте
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы