J'ai un tableau qui contient toutes les valeurs d'entrée possibles. Maintenant, je veux valider l'entrée par rapport au tableau que j'ai. Si toutes les clés d'entrée ne sont pas présentes dans le tableau, cela devrait générer une erreur et si toutes les clés d'entrée sont présentes dans le tableau, il doit afficher OK. Tout environnement d'exécution nodejs ou python est acceptable pour moi. Veuillez me suggérer une meilleure façon de le faire car je ne veux pas utiliser quelque chose comme foreach pour parcourir tous les éléments. Merci d'avance.
1 -
array = [a,b,c,d]; inputJson = {a:1,b:2}
Si ci-dessus est le cas, il devrait afficher une erreur .
2 -
array = [a,b,c,d]; inputJson = {a:1,z:2}
Dans ce cas, il devrait afficher OK
4 Réponses :
En python, vous pouvez utiliser set.intersection
sur d'autres itérables:
>>> l = ['a','b','c','d'] >>> inputJson = {'a':1,'b':2} >>> set(inputJson.keys()).intersection(l) {'a', 'b'} >>> set(l).intersection(inputJson.keys()) {'a', 'b'}
Utilisation de all
en python
Ex:
array = ["a","b","c","d"] inputJson = {"a":1,"b":2} if all(k in array for k in inputJson): print("Ok..") else: print("Error!") # --> Ok..
array = ["a","b","c","d"] inputJson = {"a":1,"z":2} if all(k in array for k in inputJson): print("Ok..") else: print("Error!") # --> Error!
solution dans node.js. J'espère que cela vous aidera.
function validate(){ var array = [a,b,c,d]; var inputJson = {a:1,z:2} for(key in inputJson){ if(array.indexOf(key) === -1){ return 'ERROR' } } return 'OK' }
var array = ['a','b']; var inputJson = {a:1,z:2}; const ok = ! Object.keys(inputJson).find(key => !array.includes(key));
pourquoi est-il mélangé python et javascript ici?
Vous pouvez référencer stackoverflow.com/ questions / 44240185 /…