ahah,关于关闭变量范围的问题^^
好吧,我发现了很多关于这个问题的问题,但找不到我问题的答案。
以下是代码:
var groups = [];
var users = [];
var getPermissions = function(accessList){
var desk = [];
_.forEach(accessList, function(access){
desk.push(access.name);
console.log("1 - Permission :" + desk);
});
return desk;
};
_.forEach(groups, function(group){
_.forEach(users, function(user){
var permissions = [];
permissions = getPermissions(user.access);
console.log("2 - Permission :" + permissions);
});
});
你能告诉我为什么日志1给我回答,而2总是空的:(
谢谢大家
P.S:忽略代码的目的,我删除了它的一些部分......
答案 0 :(得分:-1)
您需要使用回调才能使第二个控制台正常工作,因为当您的函数执行时,它将显示带有空白数组的控制台。
var getPermissions = function(accessList,callback){
var desk = [];
_forEach(accessList, function(access){
desk.push(access.name);
console.log("1 - Permission :" + desk);
});
callback(desk);
};
_.forEach(groups, function(group){
_.forEach(users, function(user){
var permissions = [];
getPermissions(user.access,function(data){
console.log("2 - Permission :" + data);
permissions =data;
});
});
});