美文网首页
js多条件分支的优化处理

js多条件分支的优化处理

作者: 泪滴在琴上 | 来源:发表于2020-09-03 12:55 被阅读0次
function pick(color) {
  // 根据颜色选择水果
  if(color === 'red') {
      return ['apple', 'strawberry']; 
  } else if (color === 'yellow') {
      return ['banana', 'pineapple'];
  } else if (color === 'purple') {
      return ['grape', 'plum'];
  } else {
      return [];
  }
}

if else 分支太多
if else 更适合于条件区间判断,而 switch case 更适合于具体枚举值的分支判断
使用 switch case 优化上面的代码后:

function pick(color) {
  // 根据颜色选择水果
  switch (color) {
    case 'red':
      return ['apple', 'strawberry'];
    case 'yellow':
      return ['banana', 'pineapple'];
    case 'purple':
      return ['grape', 'plum'];
    default:
      return [];
  }
}

switch case 优化之后的代码看上去格式整齐,思路很清晰,但还是很冗长。继续优化:

借助 Object 的 { key: value } 结构,我们可以在 Object 中枚举所有的情况,然后将 key 作为索引,直接通过 Object.key 或者 Object[key] 来获取内容

const fruitColor = {                                                                        
    red: ['apple', 'strawberry'],
    yellow: ['banana', 'pineapple'],
    purple: ['grape', 'plum'],
}
function pick(color) {
    return fruitColor[color] || [];
}

使用 Map 数据结构,真正的 (key, value) 键值对结构 ;

const fruitColor = new Map()
.set('red', ['apple', 'strawberry'])
.set('yellow', ['banana', 'pineapple'])
.set('purple', ['grape', 'plum']);

function pick(color) {
  return fruitColor.get(color) || [];
}

优化之后,代码更简洁、更容易扩展。

为了更好的可读性,还可以通过更加语义化的方式定义对象,然后使用 Array.filter 达到同样的效果。

const fruits = [
    { name: 'apple', color: 'red' }, 
    { name: 'strawberry', color: 'red' }, 
    { name: 'banana', color: 'yellow' }, 
    { name: 'pineapple', color: 'yellow' }, 
    { name: 'grape', color: 'purple' }, 
    { name: 'plum', color: 'purple' }
];

function pick(color) {
  return fruits.filter(f => f.color == color);
}

作者:政采云前端团队
链接:https://juejin.im/post/6859125809655840776
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • js多条件分支的优化处理

    if else 分支太多if else 更适合于条件区间判断,而 switch case 更适合于具体枚举值的分支...

  • JS 条件分支

    运行以下代码,并思考为什么出现这样的结果。

  • JS条件分支

    本节练习 运行以下代码,并思考为什么出现这样的结果。 if-elsevar x = 3;if(x = 1){con...

  • 条件分支的处理

    简单分支和多路分支if...else...语法switch/caseKotlin升级为when/else条件? 真...

  • 第四节: JavaScript条件分支语句

    一. 条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句。 JS中条件...

  • 第四节 JavaScript条件分支语句

    一. 条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句。 JS中条件...

  • 13_JavaScript基础入门(3)

    条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句。JS中有三种语法是可...

  • JS第二天

    JS第二天 目录: 分支结构 循环结构 异常处理 函数初级 事件处理 JS选择器 JS操作页面内容 JS操作页面样...

  • 3.6.2选择条件语句

    if条件语句是根据条件判断之后再做处理,if分支结构主要有以下几种if(条件语句){……}。if(条件语句){…}...

  • 第 015 期 优化令人生畏的条件语句的 4 个技巧

    嵌套太深,分支太多的条件语句令人生畏,难以维护。本文介绍减少嵌套深度和条件分支数量的一些技巧。 优化技巧 技巧1:...

网友评论

      本文标题:js多条件分支的优化处理

      本文链接:https://www.haomeiwen.com/subject/cbiddktx.html