数组中的字符串仅在尝试获取单个值时返回undefined?
问题描述:
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"
}
答
单项问题是,你有类似事情的出界错误的东西的提示。我发现你的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;
}
异步调用在for循环? –
是........... – Filip
? ............. – Filip