如何最好地整理签到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更改为||我们得到以下
您可以在此答案中阅读有关逻辑运算符工作的更多信息。