簡體   English   中英

如果鍵與underscore.js匹配,則比較兩個數組

[英]compare two arrays if keys match with 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
    }
}

現在我想比較所有的needed_permissions是否在given_permissions ,以下划線的方式(沒有自己循環兩個數組並比較值)。 我看到了_.include方法,但這會將數組與值進行比較。 如果所有權限都可用,我想返回true,否則返回false。 如果可能的話,我正在尋找一個不錯的單線電話。

原因是,即使用戶選擇取消擴展權限, FB.login返回true。 所以我需要仔細檢查一下。

您可以使用_.difference查看是否從您所需的權限中刪除給定的權限會留下任何_.difference

var diff = _(needed_permissions).difference(given_permissions)
if(diff.length > 0)
    // Some permissions were not granted

一個很好的副作用是你在diff中獲得缺少的權限,以防你想告訴他們什么是錯的。

這個怎么樣?

_.all(needed_permissions, function(v){
    return _.include(given_permissions, v);
});

遲到的答案,但這對我_.isEqual(given_permissions, needed_permissions);_.isEqual(given_permissions, needed_permissions);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM