如何最好地整理签到myFunc
。我想用它,typeof obj.files === 'obj'
但我可以进去null
,然后一切都会被打破。
var obj1 = {
files: null
}
var obj2 = {
files: {
video: 'video_link'
}
}
var obj3 = {
files: {
file: 'link_to_download'
}
}
var obj4 = {}
function myFunc(obj) {
return obj.files ? obj.files !== null ? obj.files.video ?
obj.files.video : obj.files.file ?
obj.files.file : null : null : null
}
console.log(myFunc(obj1))
console.log(myFunc(obj2))
console.log(myFunc(obj3))
console.log(myFunc(obj4))
为了简化条件,您首先需要定义其中检查的内容以及返回的内容:
为此,您可以使用
if
接下来,您可以考虑条件本身。
测试一个属性的存在
obj.files
和比较该属性null
是可以互换的,实际上前两个条件测试的是同一个东西,所以可以去掉一个,我们得到以下接下来,您可以删除 rows
return null
,因为它们的不存在等同于 的存在return undefined
,如果对结果进行非严格检查,则等同于返回null
由于在条件中检查了特定字段,如果成功则返回,您可以将
if
, 替换为逻辑运算符:if
更改为&&
带有外部条件if .. else
更改为||
我们得到以下
您可以在此答案中阅读有关逻辑运算符工作的更多信息。