我应该如何验证对象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的键?的主要内容,如果未能解决你的问题,请参考以下文章