ich ein Array mit Berechtigungen von Facebook und eine Reihe der Berechtigungen, die der Benutzer angegeben shouldve:vergleichen zwei Arrays, wenn Tasten mit Underscore.js übereinstimmen
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
}
}
Jetzt will ich vergleichen, wenn alle needed_permissions
sind in given_permissions
, in einem Unterstrich versierte Weise (ohne selbst zwei Arrays zu wiederholen und Werte zu vergleichen). Ich sah eine _.include
Methode, aber dies vergleicht ein Array mit einem Wert. Ich möchte den Wert true zurückgeben, wenn alle Berechtigungen verfügbar sind, und andernfalls false. Ich war auf der Suche nach einem netten Einzelanruf wenn möglich.
Der Grund dafür ist, dass FB.login
True zurückgibt, auch wenn der Benutzer die erweiterten Berechtigungen abbrechen möchte. Also muss ich das überprüfen.
Das ist auch eine nette Lösung. Ich muss den anderen als Antwort markieren, weil das genau das ist, wonach ich gefragt habe, aber ich denke, dass ich diese Lösung verwenden werde, damit ich besseres Feedback geben kann. – Jareish
Ich stimme nicht zu und denke, es wäre viel nützlicher, dies Ihre akzeptierte Antwort zu machen. _.difference ist genau das, wonach Sie gefragt haben ("Vergleichen Sie zwei Arrays, wenn Schlüssel mit underscore.js übereinstimmen" - der Rest war wirklich Spekulation, denke ich) und tatsächlich die Antwort, die Sie "akzeptiert" haben, weil Sie sie benutzt haben! Nur ein Gedanke, um anderen dabei zu helfen. Ich denke, dass nicht jeder die angenommene Antwort überprüfen wird. Die akzeptierte Antwort ist ziemlich schlecht als Lösung, da sie nichts hinzufügt, wenn Unterstreichung eine Funktion bereitstellt, um genau das "out of the box" zu tun. – SuperDuperApps