首页 > 解决方案 > 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
        });
      }
    }

标签: javascriptreturnconditional-statements

解决方案


您可以像这样简单地更新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')

推荐阅读