comparer deux tableaux si les clés du match avec underscore.js
J'ai un tableau avec des autorisations à partir de Facebook et d'un tableau des autorisations que l'utilisateur shouldve donné:
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
}
}
Maintenant, je veux comparer, si tous les needed_permissions
sont en given_permissions
, dans un trait de soulignement savvy façon (sans boucle, deux matrices de moi-même et de comparer les valeurs). J'ai vu un _.include
méthode, mais ce chiffre est à comparer un tableau avec une valeur. Je veux retourner true si toutes les autorisations sont disponibles et d'autre d'un faux. Je cherchais une belle ligne simple appel, si possible.
La raison pour cela est, que FB.login
renvoie true, même si l'utilisateur choisit d'annuler les autorisations étendues. J'ai donc besoin de communiquer.
OriginalL'auteur Jareish | 2012-08-01
Vous devez vous connecter pour publier un commentaire.
Comment à ce sujet?
OriginalL'auteur xiaowl
Vous pouvez utiliser
_.différence
pour voir si la suppression de la donnée autorisations de vos autorisations requises laisse rien derrière:Un bel effet de cette est que vous obtenez les autorisations manquantes dans
diff
dans le cas où vous voulez leur dire ce qui ne va pas.Je suis en désaccord et pensent qu'il serait beaucoup plus utile de faire cette votre réponse. _.la différence est exactement ce que vous avez demandé ("comparer deux tableaux si les clés du match avec underscore.js" - le reste est vraiment de la spéculation, je pense) et en effet la réponse que vous avez "accepté" parce que vous avez utilisé! Juste une pensée pour aider les autres à regarder cette. Je suppose que tout le monde ne va vérifier le passé de la accepté de répondre. L'on a accepté la réponse est assez pauvre comme une solution, car elle n'ajoute rien quand soulignent fournit une fonction pour faire exactement ce que "out of the box".
OriginalL'auteur mu is too short
Réponse tardive mais cela fonctionne pour moi:
_.isEqual(given_permissions, needed_permissions);
OriginalL'auteur vikeri