测试 javascript 对象中是否存在任何对象
Test for the existence of ANY object inside a javascript object
全部,
我目前正在为 "AND" RethinkDB 查询编写验证。
包含 "gt"(大于)和 "lt"(小于)的正确 "AND" 查询如下所示:
"query": {
"and": [
{ "gt": {"metadata.marvel_comics": 10} },
{ "lt": {"metadata.dc_comics": 50} }
]
}
我正在尝试确保查询的 "gt" 部分中没有包含额外的对象。
不正确的查询应该是...
"query": {
"and": [
{ "gt": {"metadata.marvel_comics": 10}
"eq": { "metadata.archie_comics": 10 }
},
{ "lt": {"metadata.dc_comics": 50} }
]
}
如果我遍历 "and" 数组,如何检查其中的每个对象是否包含嵌套的任何对象?
我不想测试每个条目的可能性(例如 "gt"、"lt" "eq"、"not" 等),我只想知道是否存在嵌套对象。如果是这样,验证将失败。
只需检查迭代对象有多少个键:
var bQuery = {
"query": {
"and": [
{
"gt": {
"metadata.marvel_comics": 10
},
"eq": {
"metadata.archie_comics": 10
}
}, {
"lt": {
"metadata.dc_comics": 50
}
}]
}
}
var gQuery = {
"query": {
"and": [
{
"gt": {
"metadata.marvel_comics": 10
}
}, {
"lt": {
"metadata.dc_comics": 50
}
}]
}
}
function validateQuery(obj){
var and = obj.query.and;
return and.every(function(comm){
if(Object.keys(comm).length > 1){
return false;
} else {
return true;
}
});
}
console.log(validateQuery(bQuery), validateQuery(gQuery));
全部,
我目前正在为 "AND" RethinkDB 查询编写验证。 包含 "gt"(大于)和 "lt"(小于)的正确 "AND" 查询如下所示:
"query": {
"and": [
{ "gt": {"metadata.marvel_comics": 10} },
{ "lt": {"metadata.dc_comics": 50} }
]
}
我正在尝试确保查询的 "gt" 部分中没有包含额外的对象。
不正确的查询应该是...
"query": {
"and": [
{ "gt": {"metadata.marvel_comics": 10}
"eq": { "metadata.archie_comics": 10 }
},
{ "lt": {"metadata.dc_comics": 50} }
]
}
如果我遍历 "and" 数组,如何检查其中的每个对象是否包含嵌套的任何对象?
我不想测试每个条目的可能性(例如 "gt"、"lt" "eq"、"not" 等),我只想知道是否存在嵌套对象。如果是这样,验证将失败。
只需检查迭代对象有多少个键:
var bQuery = {
"query": {
"and": [
{
"gt": {
"metadata.marvel_comics": 10
},
"eq": {
"metadata.archie_comics": 10
}
}, {
"lt": {
"metadata.dc_comics": 50
}
}]
}
}
var gQuery = {
"query": {
"and": [
{
"gt": {
"metadata.marvel_comics": 10
}
}, {
"lt": {
"metadata.dc_comics": 50
}
}]
}
}
function validateQuery(obj){
var and = obj.query.and;
return and.every(function(comm){
if(Object.keys(comm).length > 1){
return false;
} else {
return true;
}
});
}
console.log(validateQuery(bQuery), validateQuery(gQuery));