【问题标题】:How to display the Array length in console with JavaScript/AngularJS如何使用 JavaScript/AngularJS 在控制台中显示数组长度
【发布时间】:2016-04-04 11:16:43
【问题描述】:

我有一个关于在 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。

【问题讨论】:

  • CrudService.getAllData对我来说似乎是asynchronous..你可以使用.then
  • 分享getAllData的实现
  • @RayonDabre 我做到了!见上面我的代码 sn-p。
  • 您遇到的这个问题实际上与 Array.length 属性无关。您的问题源于异步调用。您的浏览器巧妙地在控制台中填充日志变量这一事实是您的浏览器的一个功能,并且它本身就是在您的异步调用之后填充它。您需要在完成异步调用后实现日志记录。我自己问了这样一个问题here据我所知,您应该接受此处给出的答案之一,并查看与您的问题相关的问题

标签: javascript arrays angularjs javascript-objects console.log


【解决方案1】:

当然有

console.log(yourArray.length);

或者如果你坚持这种格式,你可以这样做

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

看看docs

【讨论】:

  • 这不起作用,因为我得到了Array[ ],而当我使用.length 时它返回0。
  • 在这种情况下,您正在尝试记录未填充数组的长度。请参阅您的问题下的人造丝评论。您必须记录发送异步呼叫时的长度
【解决方案2】:

我想你正在寻找这个:

console.log(vm.list.length);

或者在你的情况下

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

【讨论】:

  • 看我上面的评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
相关资源
最近更新 更多