Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   ES2015 изменение внешней переменной в цикле (https://javascript.ru/forum/misc/59981-es2015-izmenenie-vneshnejj-peremennojj-v-cikle.html)

lebeh 05.12.2015 15:16

ES2015 изменение внешней переменной в цикле
 
Подскажите, пожалуйста, как в цикле изменить переменную, объявленную до тела цикла. Ниже код, работы которого хотелось бы добиться:
let last_price = 0

items.forEach(function(item, index, enumerable){
	last_price = item.get('price')
    concole.log(last_price) // out: 42
});

concole.log(last_price); // out: 0


Вряд ли это имеет значение, но во избежание непонимания и путаниц уточню, что в примере итерация происходит по объекту ember.js.

madCoder 05.12.2015 15:51

var last_price = 0

items.forEach(function(item, index, enumerable){
    last_price = item.get('price') 
});

concole.log(last_price);

lebeh 05.12.2015 15:58

Использую ember.js версии 2.2.0. Если объявить переменную через var, то ничего не меняется.

Safort 05.12.2015 16:02

lebeh,
item.get('price') точно не пустой? Юзани debugger, мб при обращении к этому геттеру возникает ошибка, которая валит всё.

lebeh 05.12.2015 16:13

Safort,
только что проверил - item.get('price') точно не пустой, ошибок нет, ничего не валится.
В вопросе написал неправду, когда сказал, что при присваивании в теле цикла возникает ошибка ( last_price = item.get('price') // error ) - ее там нет, код исправил на правильный.

Safort 05.12.2015 19:53

lebeh,
видимо, нужно больше инфы. Можешь полный код на http://jsfiddle.net/ выложить?


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