Приветствую, Вот код: Код (Javascript): $(document).ready(function () { var begincat = 1; // начальная категория, с которой получаем все данные var objects = new Array; var currentoblject = 0; function create_objects() { //Создаем объекты на основе категорий товаров в категории с id=1 $.ajax( { url: '/api/categories?parent_id=1', dataType:'json', method:'get', done: function(response){ for ( let i = 0; i < response.length; i++ ) { objects[i] = new Array; objects[i]['category_id'] = response[i].id; objects[i]['category'] = response[i].category; objects[i]['font-type'] = ''; objects[i]['text1-size'] = 14; objects[i]['text2-size'] = 14; objects[i]['topimage1'] = ''; objects[i]['topimage2'] = ''; objects[i]['bottomimage1'] = ''; objects[i]['bottomimage2'] = ''; objects[i]['topimage1'] = ''; objects[i]['color'] = '#fc0'; objects[i]['currentproduct'] = 0; //получим список товаров и их свойства, входящие в категорию $.ajax({ url: '/api/products?category_id=' + response[i].id, dataType:'json', method:'get', done: function(products) { objects[i]['products'] = products; } }); // } //console.log(response.length); } } ); } create_objects(); //инициализируем функцию, чтобы данные записались в objects console.log(objects); console.log(objects[0]); function drawobject(object) { //Функция отображения объекта по его порядковому номеру в массиве //$('#productphoto1').html('<img src="'+objects[object]['products'][0].photo_f+'" class="img-fluid"/>'); } drawobject(currentoblject); }); В консоли следующие результаты: Код (Text): console.log(objects); //показывает объект console.log(objects[0]); //показывает undefinded Как мне написать код так, чтобы получать нормальный доступ ко всем свойствам objects? Я новичок в JS. Менял success на done, наоборот, ничего не меняется
так что нибудь есть? Код (Javascript): $(document).ready(function () { var objects; function create_objects() { $.ajax( { url: '/api/categories?parent_id=1', dataType:'json', method:'get', done: function(response){ objects = response; } } ); } console.log(objects); });
done, вообще, пустой отдал массив. Когда закидываю objects в консоль, то он его распечатывает. А когда обращаюсь к элементу objects[0], то undefinded
Код (Javascript): success: function(data) { var data = JSON.parse(data); //- Дальше ваш код. Стоит проверить, что пришли нужные данные, прежде чем пихать его в for.
Так покажите, что за json-ина приходит с сервера. @lastdays, он же указал dataType: "json", jQuery сама в таком случае декодирует жсонину