Как отобразить длину массива в консоли с помощью JavaScript/AngularJS

У меня есть вопрос об отображении длины массива в console.log().

Вот простой пример:

vm.list = CrudService.getAllData();

function getAllFonds() {
   return ResService.names.query(
      succResp,
      errResp
   );
}

function succResp(resp) {
   return resp;
}

function ResService($resource, baseUrl) {
    return {
        names: $resource(baseUrl + '/api/list/:Id', {
            Id: '@Id'
        }, {
            'update': {
                method: 'PUT'
            }
        }),
    ....}
 }

$log.info(vm.list);

Когда я открываю консоль, будет отображаться только:

Array [ ]

Только когда я нажимаю «Массив», я вижу справа, что массив содержит 47 объектов.

Есть ли возможность вывести в консоль:

Array [47]

?

РЕДАКТИРОВАТЬ:

Когда я использую:

$log.info(vm.list.length);

он возвращает 0.


person yuro    schedule 04.04.2016    source источник
comment
CrudService.getAllDataмне кажется asynchronous..Можно использовать .then   -  person Rayon    schedule 04.04.2016
comment
Поделитесь реализацией getAllData   -  person Rayon    schedule 04.04.2016
comment
@RayonDabre Я сделал это! См. выше в моем фрагменте кода.   -  person yuro    schedule 04.04.2016
comment
Эта проблема, с которой вы столкнулись, на самом деле не имеет отношения к свойству Array.length. Ваша проблема связана с асинхронным вызовом. Тот факт, что ваш браузер умело заполняет зарегистрированную переменную в консоли, является особенностью вашего браузера, и он сам заполняет ее после вашего асинхронного вызова. Вам необходимо реализовать ведение журнала после завершения асинхронного вызова. Я сам задавал такой вопрос здесь Насколько я знаю, вы должны принять один из ответы, данные здесь, и см. соответствующий вопрос к вашей проблеме   -  person Slytherin    schedule 04.04.2016


Ответы (2)


Конечно, есть

console.log(yourArray.length);

Или, если вы настаиваете на этом формате, вы можете сделать

console.log('Array['+yourArray.length+']');

Ознакомьтесь с документами.

person Slytherin    schedule 04.04.2016
comment
это не работает, потому что я получаю Array[ ], а когда я использую .length, он возвращает 0. - person yuro; 04.04.2016
comment
В этом случае вы пытаетесь зарегистрировать длину незаполненного массива. Обратитесь к комментарию Района под своим вопросом. Вы должны зарегистрировать длину, когда ваш асинхронный вызов будет доставлен - person Slytherin; 04.04.2016

Я думаю, вы ищете это:

console.log(vm.list.length);

или в вашем случае

$log.info(vm.list.length);
person FvB    schedule 04.04.2016
comment
посмотрите на мой комментарий выше. - person yuro; 04.04.2016