Javascript.RU

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

Область видимости массива(что-то странное...)
Что это такое творится ?!
router.post('/admin/recipes/create_recipe', function (req, res) {
var selectedIngredients = new Array(req.body.ingredients.length);
for(var i = 0; i < req.body.ingredients.length; i++) {
var id = new ObjectId(req.body.ingredients[i]);
Ingredients.findById(id.path, function(err, ingredient) {
console.log(ingredient);//выводит информацию про ингредиент
selectedIngredients[i].push(ingredient);
console.log(selectedIngredients[i]); //выводит информацию про выбранный елемент
});
};
console.log("selectedIngredients");// а тут массив = []
});
Ответить с цитированием
  #2 (permalink)  
Старый 05.06.2016, 13:16
Аспирант
Отправить личное сообщение для Alex_63 Посмотреть профиль Найти все сообщения от Alex_63
 
Регистрация: 22.08.2015
Сообщений: 71

yurikjke,
Хоть бы отформатировали код...
router.post('/admin/recipes/create_recipe', function (req, res) {
    var selectedIngredients = new Array(req.body.ingredients.length);
    for(var i = 0; i < req.body.ingredients.length; i++) {
        var id = new ObjectId(req.body.ingredients[i]);
        Ingredients.findById(id.path, function(err, ingredient) {
            console.log(ingredient);
            selectedIngredients[i].push(ingredient);
            console.log(selectedIngredients[i]); 
        });
    };
    console.log(selectedIngredients);
});
Ответить с цитированием
  #3 (permalink)  
Старый 05.06.2016, 20:04
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

yurikjke,
Короче, браток, я не понимаю зачем ты так используешь push
selectedIngredients[i].push(ingredient);

push это метод для чего-то положить в конец массива. И если ты не хочешь получить массив массивов, то надо исправить
selectedIngredients[i] = ingredient;


Ещё:
1) Тебе принципиально создавать массив фиксированной длины?
var selectedIngredients = new Array(req.body.ingredients.length);


2) Ты грузишь цикл обращениями к свойству
for(var i = 0; i < req.body.ingredients.length; i++) {
Ответить с цитированием
  #4 (permalink)  
Старый 05.06.2016, 22:34
Аватар для Botik21
Аспирант
Отправить личное сообщение для Botik21 Посмотреть профиль Найти все сообщения от Botik21
 
Регистрация: 01.06.2016
Сообщений: 87

А в чём собственно вопрос/проблема?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Область видимости при роутинге Wizlight Angular.js 2 10.11.2015 06:55
Переменная из строки и область видимости scruwi Общие вопросы Javascript 12 08.02.2015 14:37
Помогите пож с JSON, передача id ссылки. wisma jQuery 22 10.02.2014 15:36
область видимости Ultimatum Общие вопросы Javascript 2 19.06.2011 10:47
можно ли включить функцию в глобальную область видимости из файла maxval Элементы интерфейса 13 04.10.2009 07:11