更新: 我能够为我想要选择的用户获得真实和错误的指示,但到目前为止我无法将他们的ID实际放入数组中。最新代码:
cInfo是{key1:array,key2:'user'}的对象 其中array是一个对象数组 其中'name'是每个数组中每个对象内的键
var theAnswer = [];
var answer = function() {
for(var c = 0; c < cInfo.array.length; c++)
var pitched = _.some(_.map(cInfo.array[c], function(n) {return n.name == Name}))
if (pitched)
theAnswer.push(cInfo.user[c]);
return theAnswer;
}
console.log(cInfo.user)返回一个用户,但在该函数中它仍未定义。
END OF UPDATE
我一直在从这段代码中获取未定义的内容。我很确定它与我的闭包有关但如果我真的知道我不会发布这个:
cComplete
是一个包含关键字段的对象数组,包括名称和用户。
var answer = function() {
var c = cComplete.length
while (c--) {
var theAnswer = [];
if (cComplete[c].name == Name) {
theAnswer.push(cComplete[c].user);
}
}
return theAnswer
}
console.log(answer());
答案 0 :(得分:0)
尝试在循环之前声明并初始化theAnswer
,因为现在它的范围仅限于循环。不仅如此,但目前每次循环迭代时,你的数组都会被重置,所以除了最后一个元素之外它几乎没用。在循环之前初始化将解决这两个问题。
希望这有帮助,快乐编码。