2

У меня есть массив объектов. Вот так он выглядит в консоле: введите сюда описание изображения

Как получить первый элемент массива из массива объектов?

Я пытался сделать вот так, но он вывел undefined:

arrayOfObjects[0]

Примерно такой код:

var root = 'https://jsonplaceholder.typicode.com';
var arr = [];
$.ajax({
  url: root + '/posts',
  method: 'GET'
}).then(function(data) {
  arr.push(data[0]);
});
function func() {
 console.log(arr[0])
}
setTimeout(func, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Спасибо за внимание!

Yernar
  • 1,220

1 Answers1

7

<телепатия>

Вы пытаетесь получить первый элемент из массива раньше, чем Ваш код заполняет этот массив данными.

</телепатия>

Спасибо за внимание! Наши представления - каждый четверг.

Update

Новая информация:

Необычное поведение javascript

Вы запрашиваете данные для массива асинхронно. А первый элемент выводите сразу, не дожидаясь возвращения асинхронного запроса. В консоли же Вы наблюдаете массив после заполнения его данными - консоль хранит на него ссылку и обновляется, отражая изменения в массиве/объекте.

@selya: Чтобы посмотреть, что было в массиве в самом начале, выводите не сам массив, а JSON.stringify(arr), к примеру.