iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >如何在JavaScript中优化逻辑判断
  • 592
分享到

如何在JavaScript中优化逻辑判断

2023-06-15 10:06:17 592人浏览 薄情痞子
摘要

如何在javascript中优化逻辑判断?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。嵌套层级优化function supply(fruit, quan

如何在javascript优化逻辑判断?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

嵌套层级优化

function supply(fruit, quantity) {    const redFruits = ['apple', 'strawberry', 'cherry', 'cranberries'];    // 条件 1: 水果存在    if (fruit) {        // 条件 2: 属于红色水果        if (redFruits.includes(fruit)) {            console.log('红色水果');            // 条件 3: 水果数量大于 10 个            if (quantity > 10) {                console.log('数量大于 10 个');            }        }    } else {        throw new Error('没有水果啦!');    }}

通过上面这个例子,我们可以看到:判断流程中规中矩,符合现实世界的映射。但是,因代码层层嵌套,导致阅读和维护都存在困难。

如果传入了 fruit 参数,则每次执行都至少需要经过两步 if 判断,在性能上也存在问题。

我们来对上面的代码进行一下优化处理:

function supply(fruit, quantity) {    const redFruits = ['apple', 'strawberry', 'cherry', 'cranberries'];    if (!fruit) throw new Error('没有水果啦');     // 条件 1: 当 fruit 无效时,提前处理错误    if (!redFruits.includes(fruit)) return; // 条件 2: 当不是红色水果时,提前 return    console.log('红色水果');    // 条件 3: 水果数量大于 10 个    if (quantity > 10) {        console.log('数量大于 10 个');    }}

这里主要对嵌套层级做了优化,提前终止掉了不符合的条件,将三层嵌套减少到了一层,简化了代码结果结构,增强了可阅读性。

多条件分支的优化

相信我们很多人对下面这种代码不陌生吧?(想想刚开始写代码那会啊)

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 更适合于条件区间判断,而 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);}

关于如何在JavaScript中优化逻辑判断问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 如何在JavaScript中优化逻辑判断

本文链接: https://www.lsjlt.com/news/279613.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在JavaScript中优化逻辑判断
    如何在JavaScript中优化逻辑判断?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。嵌套层级优化function supply(fruit, quan...
    99+
    2023-06-15
  • JavaScript如何优化逻辑判断代码详解
    前言 我们日常使用到的逻辑判断语句有 if...else...、switch...case...、do...while...等。 在简单场景下,我们可能对这些语法的性能没有什么感觉,...
    99+
    2024-04-02
  • JavaScript如何使用逻辑AND/OR做条件判断
    小编给大家分享一下JavaScript如何使用逻辑AND/OR做条件判断,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!使用逻辑 AND/OR 做条件判断if变形语句!var fo...
    99+
    2024-04-02
  • Oracle优化:千万级大表逻辑判断的累赘
    insert into pntmall_point_detail(PNTMALL_PNT_ID,PNTMALL_PNT_DT,PNTMALL_VALIDITY,PNTMALL_LASTUPDATED...
    99+
    2024-04-02
  • JavaScript语法和React JSX语法的逻辑判断优化技巧有哪些
    小编给大家分享一下JavaScript语法和React JSX语法的逻辑判断优化技巧有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!JavaScript 语法篇嵌套层级优化function supply(fr...
    99+
    2023-06-27
  • PHP7中新增的null合并运算符:如何简化代码的逻辑判断?
    PHP7 中新增了一个很实用的运算符:null 合并运算符(null coalescing operator)。这个运算符可以用来简化代码中的逻辑判断,使代码更加简洁易读。传统的逻辑判断通常使用三元运算符或者 if-else 语句来实现。比...
    99+
    2023-10-24
    PHP null合并运算符 简化代码
  • 如何使用PHP7的null合并运算符简化代码的逻辑判断?
    如何使用PHP7的null合并运算符简化代码的逻辑判断?在PHP7中引入了一个新的运算符,即null合并运算符(),该运算符可以减少代码中繁琐的逻辑判断。通过使用null合并运算符,我们可以简化对于变量是否为null的判断,从而简化代码逻辑...
    99+
    2023-10-22
    PHP null合并运算符 简化代码
  • JavaScript中如何判断NaN
    这篇文章主要介绍了JavaScript中如何判断NaN,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我也在FreeCodeCamp上碰到这样...
    99+
    2024-04-02
  • 如何在JavaScript中判断数据类型
    如何在JavaScript中判断数据类型?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。javascript是一种什么语言javascript是一种动态类型、弱类型的语言,基于对...
    99+
    2023-06-14
  • Go语言常用条件判断空值逻辑如何使用
    本篇内容介绍了“Go语言常用条件判断空值逻辑如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在 Go 中,有几种不同的方法来检查一个值...
    99+
    2023-07-05
  • vue router+vuex如何实现首页登录验证判断逻辑
    这篇文章主要为大家展示了“vue router+vuex如何实现首页登录验证判断逻辑”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue router+vuex...
    99+
    2024-04-02
  • pygame如何实现井字棋的逻辑优化
    小编给大家分享一下pygame如何实现井字棋的逻辑优化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!渲染问题翻车了,之前的逻辑是将九宫格和背景颜色写死,而且之前都...
    99+
    2023-06-14
  • javascript如何判断值是否在数组中
    这篇文章主要为大家展示了“javascript如何判断值是否在数组中”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript如何判断值是否在数组中”这...
    99+
    2024-04-02
  • 理解Golang中字符串结尾字符的判断逻辑
    为了理解Golang中字符串结尾字符的判断逻辑,我们首先要了解Golang中字符串的基本特性和相关函数。在Golang中,字符串是一个不可变的字节序列,它可以包含任意的数据,但通常用来...
    99+
    2024-03-12
    字符串 golang 结尾 len函数
  • PostgreSQL中Tuple可见性判断的基本逻辑是什么
    这篇文章主要介绍“PostgreSQL中Tuple可见性判断的基本逻辑是什么”,在日常操作中,相信很多人在PostgreSQL中Tuple可见性判断的基本逻辑是什么问题上存在疑惑,小编查阅了各式资料,整理出...
    99+
    2024-04-02
  • Javascript中如何判断对象是否存在
    本篇文章给大家分享的是有关Javascript中如何判断对象是否存在,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Javascript 语言的...
    99+
    2024-04-02
  • JavaScript逻辑运算符如何用
    本文小编为大家详细介绍“JavaScript逻辑运算符如何用”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript逻辑运算符如何用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2024-04-02
  • javascript如何判断id是否存在
    这篇文章主要为大家展示了“javascript如何判断id是否存在”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript如何判断id是否存在”这篇文...
    99+
    2024-04-02
  • javascript如何判断class是否存在
    这篇文章主要讲解了“javascript如何判断class是否存在”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript如何判断class是否存...
    99+
    2024-04-02
  • javascript如何判断div是否存在
    小编给大家分享一下javascript如何判断div是否存在,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作