早上好。我需要帮助检查对象是否存在,某些属性的值是否为true。例如:
validations={
"DSP_INDICADOR": {
"required": true
},
"EMPRESA": {
"required": true
},
.....
"NOME_AVAL": {
"required": false,
"notEqualToField": "NOME"
}
}
然后检查required:true
提前致谢
答案 0 :(得分:5)
如何简单地使用
lodash中的 _.get(validations, "EMPRESA.required");
通过这种方式,我们可以获取任何深度,并且我们不需要一次又一次地确保连续&&
,直接父级别首先存在于每个子级别。
您可以以更具编程性的方式使用此_.get
,并使用默认值(如果路径不存在)和array
keys
的正确序列进行查找。因此,动态地您可以传递一组键来获取值,而不需要像.
那样为"EMPRESA.required"
加入的字符串创建一个字符串(在N
深度输入的情况下查找路径不是string
)
以下是一个例子:
let obj = {a1: {a2: {a3: {a4: {a5: {value: 101}}}}}};
let path1 = ['a1', 'a2', 'a3', 'a4', 'a5', 'value'], //valid
path2 = ['a1', 'a2', 'a3', 'a4'], //valid
path3 = ['a1', 'a3', 'a2', 'x', 'y', 'z']; //invalid
console.log(`Lookup for ${path1.join('->')}: `, _.get(obj, path1));
console.log(`Lookup for ${path2.join('->')}: `, _.get(obj, path2));
console.log(`Lookup for ${path3.join('->')}: `, _.get(obj, path3));
console.log(`Lookup for ${path3.join('->')} with default Value: `, _.get(obj, path3, 404));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
答案 1 :(得分:1)
我想这就是它。
addListenerForSingleValueEvent