2017-10-17 52 views
-1

soo在桌面上做console.log工作,但是当我尝试获取单个值时,它返回undefined像这样[undefined:“text”],第二个for循环变量总是5出于某种原因。我不知道如何重现这一点。 groupCache和shoutCache是​​空数组数组中的字符串仅在尝试获取单个值时返回undefined?

//userid, groupCache, shoutCache defined above 

function arraysEqual(arr1, arr2) { 
    if(arr1.length !== arr2.length) 
     return false; 
    for(i = arr1.length; i--;) { 
     if(!arr2.indexOf(arr1[i])) 
      return false; 
     } 

    return true; 
} 

setInterval(function() { 
    $.getJSON("https://api.roblox.com/users/" + userid + "/groups").done(function (data) { 
     console.log(data) 
     for (i = 0; i < data.length; i++) { 
      if (!arraysEqual(data, groupCache)) { 
       groupCache.push(data[i].Id.toString()) 
      } 
     } 
     for (var v = 0; v < groupCache.length; v++) { 
      $.get("https://web.roblox.com/My/Groups.aspx?gid=" + groupCache[v]).done(function (dataA) { 
       var elems = $(dataA); 
       var finda = $('#ctl00_cphRoblox_GroupStatusPane_StatusTextField', elems); 
       shoutCache[groupCache[v]] = finda.text() // does not work 
       console.log(groupCache[v] + " :GC") 
       console.log(shoutCache) 
      }) 
     } 
    }) 
}, 10000); 

的manifest.json

{ 
    "manifest_version": 2, 
    "background": { 
     "scripts": ["/libs/jquery-3.2.1.min.js", "/scripts/Notify.js"] 
    }, 
    "name": "Extension", 
    "browser_action": { 
     "default_title": "Extension" 
    }, 
    "web_accessible_resources": [ 
     "options.html", 
     "img/*.png", 
     "JSON/*.json" 
    ], 
    "options_ui": { 
     "page": "options.html", 
     "chrome_style": true 
    }, 
    "permissions": ["storage", "background"], 
    "short_name": "Extension", 
    "version": "0.1.0" 
} 
+0

异步调用在for循环? –

+0

是........... – Filip

+0

? ............. – Filip

回答

0

单项问题是,你有类似事情的出界错误的东西的提示。我发现你的for循环从字符串的长度开始(请记住字符串的长度总是比字符串的最后一个索引多一个),因此您应该进行以下更改:

function arraysEqual(arr1, arr2) { 
    if(arr1.length !== arr2.length) 
     return false; 
    for(var i = arr1.length - 1; i--;) { 
     if(!arr2.indexOf(arr1[i])) 
      return false; 
     } 

    return true; 
} 
+0

这不是我的问题shoutCache [groupCache [v]] = finda.text()是我评论过// //不起作用 – Filip

+0

我的不好。我想我只是在想,如果arraysEqual函数不起作用,那么将数据推送到groupCache的条件将不会被满足,这将导致数组保持空。对不起,但这是我唯一的想法。祝你好运! – dmorrow

相关问题