【问题标题】:How to define total length of a function(data)?如何定义函数(数据)的总长度?
【发布时间】:2017-07-30 03:00:18
【问题描述】:

我正在做以下事情:

  $.getJSON(url,function(data){
    var totalQueries = data.length;
    $.each(data, function(i, item) {

但是这个好像错了:

var totalQueries = data.length;

到最后,我检查了最后一项,但它永远不会发生:

  if (i === totalQueries - 1) {
    myId = item.pageid;
    console.log(myId);
    newQuery();
  }

【问题讨论】:

  • 您是否遇到控制台错误?你试过调试吗?你对data 是一个数组而不是一个对象有多大把握?
  • 我确定 data 是一个数组,因为我可以读取它,因为代码是正确的,所以我没有收到任何错误,但我可以看到 console.log(myId); 没有发生,这意味着条件是不会发生@AlexanderNied
  • total length of a function(data) 没有意义......您将获得返回的解析 JSON 的长度属性。如果顶层“对象”是一个数组,那么length属性就是数组中元素的个数
  • 也许data 的示例会有所帮助 - 也许数组中的最后一项不是具有 pageid 属性的对象
  • @JaromandaX 确切地说,我知道这没有任何意义,这就是我最终来到这里的原因。无论如何我可以知道它的结局吗?

标签: javascript jquery


【解决方案1】:

data 是对象使用Object.keys(data).length; 来计数,这里你的对象看起来像,

iparse

{
  "parse": {
    "title": "Colegio Nueva Granada",
    "pageid": 2340380,
    "text": {
      "*": "<div class=...."
    },
    "langlinks": []
  }
}

【讨论】:

  • 我尝试分配var totalQueries = Object.keys(data).length;,但我从未得到console.log(myId);
  • 因为i是对象键parse不是整数,所以需要创建计数器。
  • 你能编辑我的小提琴以便我更好地理解你的答案吗?因为我不确定放柜台
  • 这里jsfiddle.net/ewwink/72uL633e 编辑:#65,$199,添加:#66,#197,#198,204# 当心它会加载巨大的文件,在它挂起浏览器之前禁用你的互联网
  • 嘿,谢谢,如果 continue 参数为 2 并且我可以看到很多重复的 id,我不知道为什么它会加载这么多
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多