0
votes

Comment dois-je valider que les clés de l'objet 1 sont présentes dans l'objet 2?

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


2 commentaires

pourquoi est-il mélangé python et javascript ici?


Vous pouvez référencer stackoverflow.com/ questions / 44240185 /…


4 Réponses :


0
votes

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'}


0 commentaires

1
votes

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!


0 commentaires

0
votes

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'
}


0 commentaires

0
votes

var array = ['a','b'];
var inputJson = {a:1,z:2};
const ok = ! Object.keys(inputJson).find(key => !array.includes(key));


0 commentaires