ho un allineamento con le autorizzazioni da Facebook e una serie di autorizzazioni che l'utente shouldve dato:confrontare due array se le chiavi coincidono con underscore.js
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
}
}
Ora voglio confrontare se tutto il needed_permissions
sono in given_permissions
, in un modo esperto di sottolineatura (senza eseguire il loop di due array e confrontare i valori). Ho visto un metodo _.include
, ma questo confronta un array con un valore. Voglio restituire true se tutte le autorizzazioni sono disponibili e altre false. Stavo cercando una bella chiamata su linea singola, se possibile.
La ragione di ciò è che FB.login
restituisce true anche se l'utente sceglie di annullare le autorizzazioni estese. Quindi ho bisogno di ricontrollare questo.
Questa è anche una bella soluzione. Dovrò contrassegnare l'altro come risposta, perché è fondamentalmente quello che ho chiesto, ma penso che userò questa soluzione in modo da poter fornire un feedback migliore. – Jareish
Non sono d'accordo e penso che sarebbe molto più utile rendere questa risposta accettata. _.difference è esattamente quello che hai chiesto ("confronta due array se le chiavi corrispondono a underscore.js" - il resto era davvero speculazione credo) e in effetti la risposta che hai "accettato" perché l'hai usata! Solo un pensiero per aiutare gli altri a guardare questo. Immagino che non tutti controlleranno la risposta accettata. La risposta accettata è piuttosto scarsa come soluzione poiché non aggiunge nulla quando underscore fornisce una funzione per fare esattamente questo "out of the box". – SuperDuperApps