Jar*_*ish 7 javascript underscore.js
我有一个拥有Facebook权限的数组,以及用户应该给出的权限数组:
window.FB.api('/me/permissions', function(perm){
if(perm){
var given_permissions = _.keys(perm['data'][0];
var needed_permissions = ["publish_stream", "email"];
//now check if given permissions contains needed permissions
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想比较,如果所有的needed_permissions都在given_permissions,在下划线精明的方式(不包括循环两个数组我和比较值).我看到了一个_.include方法,但这会将数组与值进行比较.如果所有权限都可用,我想返回true,否则返回false.如果可能的话,我正在寻找一个不错的单线电话.
原因是,FB.login即使用户选择取消扩展权限,也会返回true.所以我需要仔细检查一下.
mu *_*ort 18
您可以使用_.difference以查看是否从您所需的权限中删除给定的权限会留下任何后果:
var diff = _(needed_permissions).difference(given_permissions)
if(diff.length > 0)
// Some permissions were not granted
Run Code Online (Sandbox Code Playgroud)
这样做的一个很好的副作用是你得到了缺少的权限diff,以防你想告诉他们什么是错的.
这个怎么样?
_.all(needed_permissions, function(v){
return _.include(given_permissions, v);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11062 次 |
| 最近记录: |