有没有更优雅的方式编写函数,该函数根据函数的参数返回图像的名称?

波比马鲁

我有一个对象,其属性称为tier有9个可能的值- IRON, BRONZE, SILVER, GOLD, PLATINUM, DIAMOND, MASTER, GRANDMASTER and CHALLENGER

基于该属性,我想显示与该层相对应的标志,但是,虽然可以调用该层,但将调用IRON带有标志的图像文件Emblem_Iron

这就是为什么我创建了一个函数,该函数以atier作为参数,然后返回与相对应的标志图像的文件名,tier以便执行此操作:

<img class='ranked-emblem' :src="'../emblems/' + rankedEmblem(league.tier) + '.png'" alt="">

我的功能是:

rankedEmblem(tier){
    if (tier === 'IRON') {
        return 'Emblem_Iron'
    } else if (tier === 'BRONZE') {
        return 'Emblem_Bronze'
    } else if (tier === 'SILVER') {
        return 'Emblem_Silver'
    } else if (tier === 'GOLD') {
        return 'Emblem_Gold'
    } else if (tier === 'PLATINUM') {
        return 'Emblem_Platinum'
    } else if (tier === 'DIAMOND') {
        return 'Emblem_Diamond'
    } else if (tier === 'MASTER') {
        return 'Emblem_Master'
    } else if (tier === 'GRANDMASTER') {
        return 'Emblem_Grandmaster'
    } else if (tier === 'CHALLENGER') {
        return 'Emblem_Challenger'
    }
}

尽管这完全可以正常工作,但我想知道是否有更优雅的方法可以缩短功能,甚至可以消除几个if els。

尼克·祖姆

您可以将平原Object用作地图。

var emblems = {
  IRON: "Emblem_Iron",
  BRONZE: "Emblem_Bronze",
  SILVER: "Emblem_Silver",
  GOLD: "Emblem_Gold",
  PLATINUM: "Emblem_Platinum",
  DIAMOND: "Emblem_Diamond",
  MASTER: "Emblem_Master",
  GRANDMASTER: "Emblem_Grandmaster",
  CHALLENGER: "Emblem_Challenger"
};

function rankedEmblem(tier) {
  // Could also help user by doing:  emblems[tier.toUpperCase()]
  return emblems[tier] || "No_Emblem";
}

console.log(rankedEmblem("GOLD"));
console.log(rankedEmblem("PLATINUM"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有更优雅的方法来过滤函数的失败结果?

有没有办法将类类型作为参数传递给函数并在该函数内创建对象?

有没有更优雅的方式?

如何根据函数的type参数的type参数编写具有多态返回类型的函数?

编写一个符号Matlab函数,该函数根据其参数而有所不同

有没有更优雅的方式来写这些条件?

有没有更优雅的方式来重复使用代码块?

编写一个函数并返回该函数内的所有值以进行枚举

有没有更干净(更动态)的方式在RxJS中编写此映射函数?

有没有更优雅的方法可以在Swift中编写这种惰性加载模式?

有没有一种方法可以编写将某个函数的总和移动某个参数的函数?

有没有一种方法可以更优雅地编写此“ if”列表?

有没有办法在C中获取函数的参数名称

有没有一种更优雅的方式在Ruby中编写不知道数组大小的while循环?

有没有一种更优雅的方式来代替编写大量查询?

有没有一种方法可以编写一个通用函数,该函数将在rust中通过数组扩展实体?

有没有更短的方法来编写接受和返回闭包的函数签名?

有没有一种方法可以根据函数参数值动态更改C ++中函数的返回类型?

有没有更优雅的方式在Kotlin中编写此吸气剂?

有没有一种方法可以根据函数原型将指针传递给变量而不先定义变量,而该函数原型需要一个指针(如果其参数为参数)?

调用带有参数的静态函数,该函数没有参数成功执行

编写一个递归函数,该函数返回具有最长连续序列的数字

有没有办法将方法名称传递给函数,并让该函数返回封装该方法的委托?

有没有办法编写“SKPhysicsContactDelegate”函数的测试?

有没有更好的方法来编写不断变化的图像函数?

有没有更有效的方式来编写合并函数?

有没有更优雅的方式来编写这个 If/or 条件?

有没有办法让 TypeScript 根据调用参数推断函数返回值的类型?

有没有更优雅的方式在 SwiftUI 中使用颜色文字?