if(!parent[0] || parent[0].style.display !== 'none') {
console.log('1');
}
我试图在一行中执行此操作,但它在Firefox中失败,给出类型错误,父[0]未定义。但在这里,我试图检查,如果是的话,只做if循环。所以我唯一的解决办法就是将其分成两部分:
if(!parent[0]) {
console.log('1');
return;
}
if(parent[0].style.display !== 'none') {
console.log('1');
}
如何在一行中制作?为什么第一个代码失败并且说父[0]未定义,我该如何防止它,只是执行内部的控制台日志。
答案 0 :(得分:1)
这应该做的工作:
if(parent[0] && parent[0].style.display !== 'none') {
console.log('1');
}
使用someVariable && condition
表示已定义someVariable
且符合条件。
在我看来,最易读的代码是:
function doSomething() {
// if condition is not met we quit the function
if(parent[0] === undefined) {
return false;
}
// parent[0] is defined we proceed
// Perhaps other conditions that should quit the function
if(parent[0].style.display === 'none') {
return false;
}
// parent[0] is defined we proceed and all checks are done
// All your logic here
}
答案 1 :(得分:0)
将逻辑更改为db.getCollection('tags').aggregate([
{
$match:{
name:/sitt/i
}
},
{
$project:{
name: 1,
score:{
$switch:{
branches:[
{
case:{
$eq:[
"$name",
"sitt"
]
},
then:100
}
],
default:50
}
}
}
}
])
。
&&
答案 2 :(得分:0)
所以我建议你试试:
"style" in parent[0] ? parent[0].style.display == "none" ? console.log(1) : 0 : 0;
请注意,如果display
属性未通过javascript操作设置,则不会反映所请求属性的状态。例如:你会得到一个空字符串。