我应该如何验证对象2中对象1的键?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我应该如何验证对象2中对象1的键?相关的知识,希望对你有一定的参考价值。

我有一个包含所有可能输入值的数组。现在我想验证我对阵列的输入。如果数组中没有所有输入键,那么它应该抛出错误,如果所有输入键都存在于数组中,那么它应该打印OK。我可以接受任何nodejs或python运行时。请建议我一个更好的方法来做到这一点,因为我不想使用像foreach这样的东西迭代所有元素。提前致谢。

1 -

array = [a,b,c,d];
inputJson = a:1,z:2

如果是这种情况,则应该打印一些错误。

2 -

array = [a,b,c,d];
inputJson = a:1,b:2

在这种情况下,它应该打印好。

答案

在python中使用all

例如:

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!

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..
另一答案

在python中,您可以使用set.intersection而不是其他可迭代:

>>> l = ['a','b','c','d']
>>> inputJson = 'a':1,'b':2
>>> set(inputJson.keys()).intersection(l)
'a', 'b'
>>> set(l).intersection(inputJson.keys())
'a', 'b'
另一答案

Node.js中的解决方案希望这对你有所帮助。

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));

以上是关于我应该如何验证对象2中对象1的键?的主要内容,如果未能解决你的问题,请参考以下文章

在对象中查找具有最大值的键

如何从数组中的对象添加新的键和值?

vue路由对象($route)参数简介

GLSL:使用片段着色器进行对象翻译

如何从嵌套对象中获取具有值的所有键

Spring在API响应中返回java对象时添加额外的键