javascript - Javascript简化条件
问题描述
我想寻求帮助以简化这种情况,因为有重复
if (this.get('fileUrl')) {
if (this.get('fileContainer.asset_kind') === 'UnsplashAsset') {
return Asset.create({
url: this.get('fileUrl'),
mime_type: this.get('fileContainer.mime_type'),
isUnsplashObject: true
});
} else {
return Asset.create({
url: this.get('fileUrl'),
mime_type: this.get('fileContainer.mime_type'),
isUnsplashObject: false
});
}
}
解决方案
您可以像这样简单地更新isUnsplashObject
并返回一个Asset.create({...})
类似的内容:
if (this.get('fileUrl')) {
return Asset.create({
url: this.get('fileUrl'),
mime_type: this.get('fileContainer.mime_type'),
isUnsplashObject: (this.get('fileContainer.asset_kind') === 'UnsplashAsset')
});
}
这有点像:
if (this.get('fileContainer.asset_kind') === 'UnsplashAsset') {
isUnsplashObject = true
} else {
isUnsplashObject = false
}
或者,使用三元运算符,例如:
isUnsplashObject = (this.get('fileContainer.asset_kind') === 'UnsplashAsset') ? true : false;
或者,就像===
相等检查已经返回一个布尔值,所以我们可以简单地返回它:
isUnsplashObject = (this.get('fileContainer.asset_kind') === 'UnsplashAsset')
推荐阅读
- sql - 使用 SQL 移动计算
- momentjs - 如何使用dayjs相对时间
- c++ - 为什么 C++ 中的内置堆栈接口没有 clear() 函数?
- angularjs - AngularJS - 将路由组件保存在缓存中(保持活动状态)
- windows - 'meteor' 不是内部或外部命令、可运行程序或批处理文件
- python - Pandas DataFrame 有效地将一列拆分为多列
- android - LinearLayout嵌套在ContraintLayout中,并且LinearLayout的方向是水平的,LinearLayout变得可见,Constraint无效
- android - 区分地图中的相同键值
- laravel - Laravel 8 Vue 3 - Npm run hot (mix watch --hot) 抛出错误,可能是 webpack 问题
- ios - CoreBluetooth 外设响应写入请求