2017-10-17 14 views
-1

sooはテーブル上のconsole.logを動かしていますが、1つの値を取得しようとすると、この[undefined: "text"]のように未定義を返し、何らかの理由で2番目の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ループの文字列の長さから始まり、あなたの次の変更を行う必要がありますので、(文字列の長さは常に文字列の最後のインデックスより1であることを忘れないでください)ことがわかりforループで? –

+0

はい........... – Filip

+0

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

答えて

0

ある単品の問題は、何が起こっ境界エラーのうちに似た何かを持っているというヒントです。

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

私の悪いです。 arrayEqual関数が機能しなかった場合、groupCacheにデータをプッシュする条件が満たされず、配列が空のままになるということを考えていたと思います。申し訳ありませんが、それは私が持っている唯一のアイデアです。がんばろう! – dmorrow

関連する問題