<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Jay</title>
        <link>https://paragraph.com/@jay-2</link>
        <description>undefined</description>
        <lastBuildDate>Wed, 17 Jun 2026 05:15:05 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Jay</title>
            <url>https://storage.googleapis.com/papyrus_images/aa20beeb28a199de22d32065fdb96a6edb7995a9d192e505aad37e82763a28b2.webp</url>
            <link>https://paragraph.com/@jay-2</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[也学牡丹开]]></title>
            <link>https://paragraph.com/@jay-2/lmsBSkgnDYviOBeggj3O</link>
            <guid>lmsBSkgnDYviOBeggj3O</guid>
            <pubDate>Sat, 06 Aug 2022 08:16:40 GMT</pubDate>
            <description><![CDATA[“苔花如米小，也学牡丹开。”第一次读这首诗时，就被深深地打动了。后来在同学的朋友圈里，看到她和一帮年龄相仿的女子，穿着明媚鲜妍的旗袍，三月的阳光泼洒在她们的脸上身上，身旁是鲜花著锦，她们也都是笑靥如花，图片下方有她添加的注释：“白日不到处，青春恰自来。苔花如米小，也学牡丹开。”这一注释，让那些图片和图片中我的同学的格调一下子飞升上去。 我在一家企业医院外科做护士的时候，有一位小我一岁的护工，我叫她小汪。我一直相信人与人之间的缘分，对于我，她有一些依恋，她说我待她好。我喜欢她的为人憨厚老实、做事踏实勤勉。病房和走道的地面，她一天要拖好多个来回，收拾整理病人的被褥她一样也不含糊，来了新病人，她会主动地协助护士铺床叠被。她在医院工作期间，常来我家玩，后来，她的父亲一年也总要到我家来几回。几年后，她离开了医院，她父亲告诉我，她在上海打工，之后成家生子。那时候，我们都没有手机，后来，我也离开了医院，再后来，又搬了家，便失去了联系，但是，心里一直惦记她想念她——她的外形如苔、知识层次如苔，却在平常的人生道路上，认真地生活、努力地开花结果。 常年在我们单位收报纸废品的一位妇人，那天来时，她的神...]]></description>
            <content:encoded><![CDATA[<p>“苔花如米小，也学牡丹开。”第一次读这首诗时，就被深深地打动了。后来在同学的朋友圈里，看到她和一帮年龄相仿的女子，穿着明媚鲜妍的旗袍，三月的阳光泼洒在她们的脸上身上，身旁是鲜花著锦，她们也都是笑靥如花，图片下方有她添加的注释：“白日不到处，青春恰自来。苔花如米小，也学牡丹开。”这一注释，让那些图片和图片中我的同学的格调一下子飞升上去。</p><p>我在一家企业医院外科做护士的时候，有一位小我一岁的护工，我叫她小汪。我一直相信人与人之间的缘分，对于我，她有一些依恋，她说我待她好。我喜欢她的为人憨厚老实、做事踏实勤勉。病房和走道的地面，她一天要拖好多个来回，收拾整理病人的被褥她一样也不含糊，来了新病人，她会主动地协助护士铺床叠被。她在医院工作期间，常来我家玩，后来，她的父亲一年也总要到我家来几回。几年后，她离开了医院，她父亲告诉我，她在上海打工，之后成家生子。那时候，我们都没有手机，后来，我也离开了医院，再后来，又搬了家，便失去了联系，但是，心里一直惦记她想念她——她的外形如苔、知识层次如苔，却在平常的<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.bidushe.com/jingdian/ganwu/">人生</a>道路上，认真地<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.bidushe.com/jingdian/suibi/">生活</a>、努力地开花结果。</p><p>常年在我们单位收报纸废品的一位妇人，那天来时，她的神情格外的欢快，她从口袋里掏出些软糖，给我们办公室每位同事两颗。她说她很开心，她的大儿媳生了一对龙凤胎。早先就听她说过，她的大儿子是安庆某医院的医生，她的小儿子正在华师大读博士。她还说过，她爱人身体不好，肾脏做过大手术，收报纸废品这样的重活，主要由她完成，在她把大堆大堆的报纸废品从楼上搬至楼下，她往三轮车上搬时，她爱人帮她搭把手。她是家里的功臣，两个儿子的培养，家庭生活的支撑，她起着举足轻重的作用。她很辛苦，她很劳累，但是，每次我见到她时，她脸上都挂着灿烂的笑容——她也平常如苔，但是，她努力地做事挣钱，努力地经营自己的家庭，并且，她总是向大家展示自己最阳光的一面，她始终洋溢在面庞上的笑容，亦如牡丹开。</p><p>我年少时，家里没有男性劳动力，家里的农活，几乎全部由母亲和姐姐去完成。这是由我家的特殊情况决定的，父亲当年从苏州大学毕业后，在绩溪中学从事教育工作，在我出生那年，父亲虽然调到了离家三十里路远处的汤沟中学教书，但是父亲基本上还是不可能帮助母亲做农活，一来做不了，二来也没有时间去做。姐姐九岁那年，母亲生下大哥，后来相继生下二哥、我和弟弟。姐姐后面的我们姊妹四个，到了上学年龄，一个一个地被母亲送进学校读书。因为缺少劳动力，也因为当时老师的工资水平实在有限，我们家的生活一直都很清贫，不仅如此，还不时地遭受有许多强壮劳动力人家的欺负。不服输的母亲，因为常年超负荷的劳动，身体上老伤叠加新伤，但是，再苦再难，给我们姊妹四个读书，是母亲坚守的底线。母亲也是苔，她的内心聚集着一团火焰，那团火焰，如牡丹，照亮着她自己的内心，也照亮着我们从贫困生活里一步一个脚印地走过来的一家人。</p><p>在我刚踏入社会那几年，除了工作，我的业余时间基本上荒废了。如今每每想起，都无比地心疼和自责。后来成家生子，业余时间被没完没了的家庭琐碎事务以及孩子的学习教育悉数占据了，孩子大一些后，我开始阅读一些书籍，后来尝试写作，也算是为自己的业余生活开辟了一条路。在这条路上，我一直走得战战兢兢如履薄冰，因为起步太迟，也因为天赋不够，但是，于我，那毕竟是可以带给我充实感和愉悦感的一条路，我在收获文学营养的同时，也收获了一些提升自己品质素质方面的营养，如此，虽在红尘世井里跌打滚爬多年，不至于粗陋到鄙俗。</p><p>春水初生，春林初盛。我深知，自己平常如苔，在和暖宜人的春光里，牡丹花开的样子，万花齐放的姿态，我唯有仰望，但是，这并不妨碍，我<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.bidushe.com/qinggan/meiwenxinshang/">欣赏</a>，我效仿。</p>]]></content:encoded>
            <author>jay-2@newsletter.paragraph.com (Jay)</author>
        </item>
        <item>
            <title><![CDATA[吃螃蟹]]></title>
            <link>https://paragraph.com/@jay-2/vWrvAsFxLsNXO1XlSP8c</link>
            <guid>vWrvAsFxLsNXO1XlSP8c</guid>
            <pubDate>Sat, 09 Jul 2022 12:01:27 GMT</pubDate>
            <description><![CDATA[时至仲秋，正是吃螃蟹的时候。大儿子与儿媳送来一盒大闸蟹，装有20只活螃蟹，用线绳捆着。他们用一条沾满水的湿毛巾裹起来，放在冰箱的冷藏室，让我们在三天内吃完，叮嘱要叫他弟弟和弟媳回家来尝鲜。 我从小生长在天津，爱吃螃蟹。那时在路边摊位上就有当日蒸煮的螃蟹，价钱很便宜，红红的煞是诱人。尤其那碗口大的海螃蟹更是解馋，吃一只就差不多饱了，连饭也不想吃了。我的老姨夫是农民，在天津附近的军粮城种植水稻，也在稻田里养螃蟹。每年秋天总要送来很多稻田蟹，虽说个头不大，但个个“顶盖肥”。全家人大口朵颐，总要吃个尽兴，至今想起来，还口有余香。 有一年我和妻子回天津探亲，父母别提多高兴了。听说妻子是太原人，从小没吃过螃蟹，母亲就亲自去买。当时天津胡同里，有叫卖“活螃蟹”的小商贩，用一条湿布袋子装着螃蟹。母亲用有盖的饭锅买回螃蟹，拿出一只，让妻子观看。形状可怕，丑陋凶狠，八条腿横着爬行。我打趣说，这就是成语“横行霸（八）道”的来源。母亲在煤球火炉上清蒸螃蟹，开始用手按压着锅盖，听见锅里劈里叭啦响，不一会儿就安静下来了。妻子悄悄对我说：“螃蟹真恓惶！”这时母亲开始切姜末，倒上天津青酱（酱油），还特意给妻子备...]]></description>
            <content:encoded><![CDATA[<p>时至仲秋，正是吃螃蟹的时候。大儿子与儿媳送来一盒大闸蟹，装有20只活螃蟹，用线绳捆着。他们用一条沾满水的湿毛巾裹起来，放在冰箱的冷藏室，让我们在三天内吃完，叮嘱要叫他弟弟和弟媳回家来尝鲜。</p><p>我从小生长在天津，爱吃螃蟹。那时在路边摊位上就有当日蒸煮的螃蟹，价钱很便宜，红红的煞是诱人。尤其那碗口大的海螃蟹更是解馋，吃一只就差不多饱了，连饭也不想吃了。我的老姨夫是农民，在天津附近的军粮城种植水稻，也在稻田里养螃蟹。每年秋天总要送来很多稻田蟹，虽说个头不大，但个个“顶盖肥”。全家人大口朵颐，总要吃个尽兴，至今想起来，还口有余香。</p><p>有一年我和妻子回天津探亲，父母别提多高兴了。听说妻子是太原人，从小没吃过螃蟹，母亲就亲自去买。当时天津胡同里，有叫卖“活螃蟹”的小商贩，用一条湿布袋子装着螃蟹。母亲用有盖的饭锅买回螃蟹，拿出一只，让妻子观看。形状可怕，丑陋凶狠，八条腿横着爬行。我打趣说，这就是成语“横行霸（八）道”的来源。母亲在煤球火炉上清蒸螃蟹，开始用手按压着锅盖，听见锅里劈里叭啦响，不一会儿就安静下来了。妻子悄悄对我说：“螃蟹真恓惶！”这时母亲开始切姜末，倒上天津青酱（酱油），还特意给妻子备上醋。大约蒸了一刻钟，揭开锅盖一看，螃蟹全成了红色，蒸锅水面浮着一层油，让人垂涎欲滴。</p><p>父亲让我们趁热吃，并介绍说：“秋季刚好是螃蟹生长最好的时候，时下正是饭桌上的时令美味。吃圆脐的母蟹，蟹黄多；吃长脐的公蟹，蟹膏多。你们多吃点！”妻子没有动手，我给她先揭开了蟹盖，用筷子把蟹黄剥落在碗里，蘸着姜末酱油吃。妻子一尝，果然味道鲜美。父亲又告诉哪里是蟹腮、蟹胃、蟹肠、蟹心，这四处不能吃。然后我掰开蟹身，让妻子吃白色的蟹肉，最后吃蟹钳和蟹腿，这可需要好牙口了，好在那时我们正年轻。</p><p>我们也有好久没有吃螃蟹了，如今贴心的大儿子儿媳送来大闸蟹，让我们老两口回味家乡美味，大饱口福了。喜爱读书的老伴对我说：“鲁迅先生说过，第一个吃螃蟹的人是令人钦佩的勇士啊！”我若有所思地接着说：“吃螃蟹，让我们缅怀起早已作古的两位老人，令人感怀的无价亲情啊！”</p>]]></content:encoded>
            <author>jay-2@newsletter.paragraph.com (Jay)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/8a7407dee805051b88bf0d70e493869ca0e07946b7dbed7d2d3db4cfe8be8e16.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[代码简洁悟道]]></title>
            <link>https://paragraph.com/@jay-2/lwd4wa0z2leYH144wbQs</link>
            <guid>lwd4wa0z2leYH144wbQs</guid>
            <pubDate>Tue, 09 Nov 2021 02:55:45 GMT</pubDate>
            <description><![CDATA[范围值对应单一值示例描述：根据 文件后缀fileSuffix 所属的范围，获取对应单一的icon值// 文件后缀 const fileSuffix = 'ppt' // 创建映射 const map = { "xls":["xls", "xlsx", "xlsm"], "doc": ["doc", "docx"], "ppt": ["ppt", "pptx"], "pdf": ["pdf"], "audio":["mp3", "wma"], "media":["mp4"], "zip": ["zip", "7z", "rar", "apz"], "txt":["txt"], "image":["jpg", "jpeg", "gif", "png"] } // 有的小伙伴可能或 for in 循环对象判断 // 少数或许实现思路是这样的 const icon = Object.keys(map)[Object.values(map).findIndex(i => i.includes(fileSuffix))] || 'default' 复制代码 思考：如果我们现在有这么一个场景，...]]></description>
            <content:encoded><![CDATA[<h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">范围值对应单一值</h2><blockquote><p>示例描述：根据 文件后缀<code>fileSuffix</code> 所属的范围，获取对应单一的<code>icon</code>值</p></blockquote><pre data-type="codeBlock" text="// 文件后缀
const fileSuffix = &apos;ppt&apos;

// 创建映射
const map = {
    &quot;xls&quot;:[&quot;xls&quot;, &quot;xlsx&quot;, &quot;xlsm&quot;],
    &quot;doc&quot;: [&quot;doc&quot;, &quot;docx&quot;],
    &quot;ppt&quot;: [&quot;ppt&quot;, &quot;pptx&quot;],
    &quot;pdf&quot;: [&quot;pdf&quot;],
    &quot;audio&quot;:[&quot;mp3&quot;, &quot;wma&quot;],
    &quot;media&quot;:[&quot;mp4&quot;],
    &quot;zip&quot;: [&quot;zip&quot;, &quot;7z&quot;, &quot;rar&quot;, &quot;apz&quot;],
    &quot;txt&quot;:[&quot;txt&quot;],
    &quot;image&quot;:[&quot;jpg&quot;, &quot;jpeg&quot;, &quot;gif&quot;, &quot;png&quot;]
}
// 有的小伙伴可能或 for in 循环对象判断
// 少数或许实现思路是这样的
const icon = Object.keys(map)[Object.values(map).findIndex(i =&gt; i.includes(fileSuffix))] || &apos;default&apos;
复制代码
"><code><span class="hljs-comment">// 文件后缀</span>
const fileSuffix <span class="hljs-operator">=</span> <span class="hljs-string">'ppt'</span>

<span class="hljs-comment">// 创建映射</span>
const map <span class="hljs-operator">=</span> {
    <span class="hljs-string">"xls"</span>:[<span class="hljs-string">"xls"</span>, <span class="hljs-string">"xlsx"</span>, <span class="hljs-string">"xlsm"</span>],
    <span class="hljs-string">"doc"</span>: [<span class="hljs-string">"doc"</span>, <span class="hljs-string">"docx"</span>],
    <span class="hljs-string">"ppt"</span>: [<span class="hljs-string">"ppt"</span>, <span class="hljs-string">"pptx"</span>],
    <span class="hljs-string">"pdf"</span>: [<span class="hljs-string">"pdf"</span>],
    <span class="hljs-string">"audio"</span>:[<span class="hljs-string">"mp3"</span>, <span class="hljs-string">"wma"</span>],
    <span class="hljs-string">"media"</span>:[<span class="hljs-string">"mp4"</span>],
    <span class="hljs-string">"zip"</span>: [<span class="hljs-string">"zip"</span>, <span class="hljs-string">"7z"</span>, <span class="hljs-string">"rar"</span>, <span class="hljs-string">"apz"</span>],
    <span class="hljs-string">"txt"</span>:[<span class="hljs-string">"txt"</span>],
    <span class="hljs-string">"image"</span>:[<span class="hljs-string">"jpg"</span>, <span class="hljs-string">"jpeg"</span>, <span class="hljs-string">"gif"</span>, <span class="hljs-string">"png"</span>]
}
<span class="hljs-comment">// 有的小伙伴可能或 for in 循环对象判断</span>
<span class="hljs-comment">// 少数或许实现思路是这样的</span>
const icon <span class="hljs-operator">=</span> Object.keys(map)[Object.values(map).findIndex(i <span class="hljs-operator">=</span><span class="hljs-operator">></span> i.includes(fileSuffix))] <span class="hljs-operator">|</span><span class="hljs-operator">|</span> <span class="hljs-string">'default'</span>
复制代码
</code></pre><blockquote><p>思考：如果我们现在有这么一个场景，多个范围值对应一个单一值，这个 单一值 可以是一个字符串，也可以是一个函数，传入的值如果不在对应范围值内，我们需要返回一个默认值或执行一个默认的函数，那么我们又当如何做呢</p></blockquote><p><strong>示例</strong></p><pre data-type="codeBlock" text="// 文件后缀
const fileSuffix = &apos;ppt&apos;
const defaultFn = ()=&gt;{}

 // 如果 fileSuffix 是属于 [&quot;xls&quot;, &quot;xlsx&quot;, &quot;xlsm&quot;]当中，返回&quot;xls&quot;
 // 如果 fileSuffix 是属于 [&quot;zip&quot;] 当中，就返回 逻辑处理的的结果，否则就 执行默认函数 
 
 if([&quot;xls&quot;, &quot;xlsx&quot;, &quot;xlsm&quot;].includes(fileSuffix)){
     return &quot;xls&quot;
 }else if([&quot;zip&quot;].includes(fileSuffix)){
     // 各种逻辑处理...
     return &quot;各种逻辑处理后的结果&quot;
 }
 // 两个还好处理，一旦变得多起来，这种if else 就不好维护了
复制代码
"><code><span class="hljs-comment">// 文件后缀</span>
const fileSuffix <span class="hljs-operator">=</span> <span class="hljs-string">'ppt'</span>
const defaultFn <span class="hljs-operator">=</span> ()<span class="hljs-operator">=</span><span class="hljs-operator">></span>{}

 <span class="hljs-comment">// 如果 fileSuffix 是属于 ["xls", "xlsx", "xlsm"]当中，返回"xls"</span>
 <span class="hljs-comment">// 如果 fileSuffix 是属于 ["zip"] 当中，就返回 逻辑处理的的结果，否则就 执行默认函数 </span>
 
 <span class="hljs-keyword">if</span>([<span class="hljs-string">"xls"</span>, <span class="hljs-string">"xlsx"</span>, <span class="hljs-string">"xlsm"</span>].includes(fileSuffix)){
     <span class="hljs-keyword">return</span> <span class="hljs-string">"xls"</span>
 }<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>([<span class="hljs-string">"zip"</span>].includes(fileSuffix)){
     <span class="hljs-comment">// 各种逻辑处理...</span>
     <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理后的结果"</span>
 }
 <span class="hljs-comment">// 两个还好处理，一旦变得多起来，这种if else 就不好维护了</span>
复制代码
</code></pre><blockquote><p>有的小伙伴或许想到了 Map，因为任何值(对象或者<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://link.juejin.cn?target=https%3A%2F%2Fdeveloper.mozilla.org%2Fzh-CN%2Fdocs%2FGlossary%2FPrimitive">原始值</a>) 都可以作为一个键,但是我还是不想用 Map 来实现，请原谅我的倔强</p></blockquote><p>继续思考和优化，创建了3种数据类型，都需要达到兼容</p><pre data-type="codeBlock" text="// 文件后缀
const fileSuffix = &apos;ppt&apos;

// 创建数 据类型 1，fileSuffix 只有属于对应 key 解析后的数组，就返回对应的字符串值
const type1 = {
    &apos;[&quot;xls&quot;, &quot;xlsx&quot;, &quot;xlsm&quot;]&apos;:&quot;xls&quot;,
    &apos;[&quot;doc&quot;, &quot;docx&quot;]&apos;:&quot;doc&quot;,
    &apos;[&quot;ppt&quot;, &quot;pptx&quot;]&apos;:&quot;ppt&quot;,
    &apos;[&quot;pdf&quot;]&apos;:&quot;pdf&quot;,
    &apos;[&quot;mp3&quot;, &quot;wma&quot;]&apos;:&quot;audio&quot;,
    &apos;[&quot;mp4&quot;]&apos;:&quot;media&quot;,
    &apos;[&quot;zip&quot;, &quot;7z&quot;, &quot;rar&quot;, &quot;apz&quot;]&apos;:&quot;zip&quot;,
    &apos;[&quot;txt&quot;]&apos;:&quot;txt&quot;,
    &apos;[&quot;jpg&quot;, &quot;jpeg&quot;, &quot;gif&quot;, &quot;png&quot;]&apos;:&quot;image&quot;
}

// 创建数 据类型 2，fileSuffix 只有属于对应 key 解析后的数组，就返回对应函数返回的值
const type2 = {
    &apos;[&quot;xls&quot;, &quot;xlsx&quot;, &quot;xlsm&quot;]&apos;:()=&gt;{
        // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;xls&quot;
    },
    &apos;[&quot;doc&quot;, &quot;docx&quot;]&apos;:()=&gt;{
         // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;doc&quot;
    },
    &apos;[&quot;ppt&quot;, &quot;pptx&quot;]&apos;:()=&gt;{
           // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;ppt&quot;
    },
    &apos;[&quot;pdf&quot;]&apos;:()=&gt;{
          // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;pdf&quot;
    },
    &apos;[&quot;mp3&quot;, &quot;wma&quot;]&apos;:()=&gt;{
          // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;audio&quot;
    },
    &apos;[&quot;mp4&quot;]&apos;:()=&gt;{
          // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;media&quot;
    },
    &apos;[&quot;zip&quot;, &quot;7z&quot;, &quot;rar&quot;, &quot;apz&quot;]&apos;:()=&gt;{
          // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;zip&quot;
    },
    &apos;[&quot;txt&quot;]&apos;:()=&gt;{
          // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;txt&quot;
    },
    &apos;[&quot;jpg&quot;, &quot;jpeg&quot;, &quot;gif&quot;, &quot;png&quot;]&apos;:()=&gt;{
          // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;image&quot;
    }
}
// 创建数 据类型 3，fileSuffix 只有属于对应 key 解析后的数组，就返回对应的字符串值 或 返回 对应函数返回的值
const type3 = {
    &apos;[&quot;xls&quot;, &quot;xlsx&quot;, &quot;xlsm&quot;]&apos;:&quot;xls&quot;,
    &apos;[&quot;doc&quot;, &quot;docx&quot;]&apos;:&quot;doc&quot;,
    &apos;[&quot;ppt&quot;, &quot;pptx&quot;]&apos;:&quot;ppt&quot;,
    &apos;[&quot;pdf&quot;]&apos;:&quot;pdf&quot;,
    &apos;[&quot;mp3&quot;, &quot;wma&quot;]&apos;:()=&gt;{
       // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;audio&quot;
    },
    &apos;[&quot;mp4&quot;]&apos;:&quot;media&quot;,
    &apos;[&quot;zip&quot;, &quot;7z&quot;, &quot;rar&quot;, &quot;apz&quot;]&apos;:&quot;zip&quot;,
    &apos;[&quot;txt&quot;]&apos;:&quot;txt&quot;,
    &apos;[&quot;jpg&quot;, &quot;jpeg&quot;, &quot;gif&quot;, &quot;png&quot;]&apos;:()=&gt;{
        // 各种逻辑处理...
        return &quot;各种逻辑处理的结果&quot;+&quot;image&quot;
    }
}
复制代码
"><code><span class="hljs-comment">// 文件后缀</span>
<span class="hljs-keyword">const</span> fileSuffix = <span class="hljs-symbol">'ppt</span>'

<span class="hljs-comment">// 创建数 据类型 1，fileSuffix 只有属于对应 key 解析后的数组，就返回对应的字符串值</span>
<span class="hljs-keyword">const</span> type1 = {
    '[<span class="hljs-string">"xls"</span>, <span class="hljs-string">"xlsx"</span>, <span class="hljs-string">"xlsm"</span>]':<span class="hljs-string">"xls"</span>,
    '[<span class="hljs-string">"doc"</span>, <span class="hljs-string">"docx"</span>]':<span class="hljs-string">"doc"</span>,
    '[<span class="hljs-string">"ppt"</span>, <span class="hljs-string">"pptx"</span>]':<span class="hljs-string">"ppt"</span>,
    '[<span class="hljs-string">"pdf"</span>]':<span class="hljs-string">"pdf"</span>,
    '[<span class="hljs-string">"mp3"</span>, <span class="hljs-string">"wma"</span>]':<span class="hljs-string">"audio"</span>,
    '[<span class="hljs-string">"mp4"</span>]':<span class="hljs-string">"media"</span>,
    '[<span class="hljs-string">"zip"</span>, <span class="hljs-string">"7z"</span>, <span class="hljs-string">"rar"</span>, <span class="hljs-string">"apz"</span>]':<span class="hljs-string">"zip"</span>,
    '[<span class="hljs-string">"txt"</span>]':<span class="hljs-string">"txt"</span>,
    '[<span class="hljs-string">"jpg"</span>, <span class="hljs-string">"jpeg"</span>, <span class="hljs-string">"gif"</span>, <span class="hljs-string">"png"</span>]':<span class="hljs-string">"image"</span>
}

<span class="hljs-comment">// 创建数 据类型 2，fileSuffix 只有属于对应 key 解析后的数组，就返回对应函数返回的值</span>
<span class="hljs-keyword">const</span> type2 = {
    '[<span class="hljs-string">"xls"</span>, <span class="hljs-string">"xlsx"</span>, <span class="hljs-string">"xlsm"</span>]':()=>{
        <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"xls"</span>
    },
    '[<span class="hljs-string">"doc"</span>, <span class="hljs-string">"docx"</span>]':()=>{
         <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"doc"</span>
    },
    '[<span class="hljs-string">"ppt"</span>, <span class="hljs-string">"pptx"</span>]':()=>{
           <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"ppt"</span>
    },
    '[<span class="hljs-string">"pdf"</span>]':()=>{
          <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"pdf"</span>
    },
    '[<span class="hljs-string">"mp3"</span>, <span class="hljs-string">"wma"</span>]':()=>{
          <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"audio"</span>
    },
    '[<span class="hljs-string">"mp4"</span>]':()=>{
          <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"media"</span>
    },
    '[<span class="hljs-string">"zip"</span>, <span class="hljs-string">"7z"</span>, <span class="hljs-string">"rar"</span>, <span class="hljs-string">"apz"</span>]':()=>{
          <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"zip"</span>
    },
    '[<span class="hljs-string">"txt"</span>]':()=>{
          <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"txt"</span>
    },
    '[<span class="hljs-string">"jpg"</span>, <span class="hljs-string">"jpeg"</span>, <span class="hljs-string">"gif"</span>, <span class="hljs-string">"png"</span>]':()=>{
          <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"image"</span>
    }
}
<span class="hljs-comment">// 创建数 据类型 3，fileSuffix 只有属于对应 key 解析后的数组，就返回对应的字符串值 或 返回 对应函数返回的值</span>
<span class="hljs-keyword">const</span> type3 = {
    '[<span class="hljs-string">"xls"</span>, <span class="hljs-string">"xlsx"</span>, <span class="hljs-string">"xlsm"</span>]':<span class="hljs-string">"xls"</span>,
    '[<span class="hljs-string">"doc"</span>, <span class="hljs-string">"docx"</span>]':<span class="hljs-string">"doc"</span>,
    '[<span class="hljs-string">"ppt"</span>, <span class="hljs-string">"pptx"</span>]':<span class="hljs-string">"ppt"</span>,
    '[<span class="hljs-string">"pdf"</span>]':<span class="hljs-string">"pdf"</span>,
    '[<span class="hljs-string">"mp3"</span>, <span class="hljs-string">"wma"</span>]':()=>{
       <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"audio"</span>
    },
    '[<span class="hljs-string">"mp4"</span>]':<span class="hljs-string">"media"</span>,
    '[<span class="hljs-string">"zip"</span>, <span class="hljs-string">"7z"</span>, <span class="hljs-string">"rar"</span>, <span class="hljs-string">"apz"</span>]':<span class="hljs-string">"zip"</span>,
    '[<span class="hljs-string">"txt"</span>]':<span class="hljs-string">"txt"</span>,
    '[<span class="hljs-string">"jpg"</span>, <span class="hljs-string">"jpeg"</span>, <span class="hljs-string">"gif"</span>, <span class="hljs-string">"png"</span>]':()=>{
        <span class="hljs-comment">// 各种逻辑处理...</span>
        <span class="hljs-keyword">return</span> <span class="hljs-string">"各种逻辑处理的结果"</span>+<span class="hljs-string">"image"</span>
    }
}
复制代码
</code></pre><blockquote><p>事实上，实际项目中就有很多这样的需求，用 对象处理也是简化 if else的最佳方案，我们用一个函数来兼容这些场景，PS：我们map 对象的key种的属性值 只支持数组 和 字符串</p></blockquote><pre data-type="codeBlock" text="/**                                       
 * @description: 简化函数 key为数组字符串
 * @param { Object } o: 像 上面的 3种对象            
 * @param { String } s ：像 上面的 3种对象一样的 key 字符串      
 * @param { String | Function } d ：没有匹配到 给的默认值 或是 执行的默认函数  
 */
function simplify(o, s, d){

    // 查询是否能找到对应的key

    const k = Object.keys(o).find(k =&gt; JSON.parse(k).includes(s))

    // 如果查找到 并且 其对应的值是字符串，那么直接返回该字符串

    if(typeof o[k] ===&apos;string&apos;)return o[k]

    // 如果查找到 并且 其对应的值是函数，那么直接执行

    if(typeof o[k] === &apos;function&apos;)return o[k]()

    // 如果没有查找到并且 默认d是字符串，那么就返回默认d值

    if(!o[k] &amp;&amp; d &amp;&amp; typeof d ===&apos;string&apos;)return d

    // 如果没有查找到并且 默认d是函数，那么就直接执行

    if(!o[k] &amp;&amp; d &amp;&amp; typeof d === &apos;function&apos;) return d()

}
// 如何使用
// 没有从type1 种匹配到 &apos;wma&apos;，就返回 &apos;default&apos;，匹配到就返回匹配值
simplify(type1,&apos;wma&apos;,&apos;default&apos;)


simplify(type1,&apos;wma1&apos;,()=&gt;{
    // 没有匹配到 执行该默认函数
    console.log(&apos;没有匹配到 执行该默认函数了&apos;)
})

复制代码
"><code><span class="hljs-comment">/**                                       
 * @description: 简化函数 key为数组字符串
 * @param { Object } o: 像 上面的 3种对象            
 * @param { String } s ：像 上面的 3种对象一样的 key 字符串      
 * @param { String | Function } d ：没有匹配到 给的默认值 或是 执行的默认函数  
 */</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">simplify</span>(<span class="hljs-params">o, s, d</span>)</span>{

    <span class="hljs-comment">// 查询是否能找到对应的key</span>

    const k <span class="hljs-operator">=</span> Object.keys(o).find(k <span class="hljs-operator">=</span><span class="hljs-operator">></span> JSON.parse(k).includes(s))

    <span class="hljs-comment">// 如果查找到 并且 其对应的值是字符串，那么直接返回该字符串</span>

    <span class="hljs-keyword">if</span>(typeof o[k] <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-string">'string'</span>)<span class="hljs-keyword">return</span> o[k]

    <span class="hljs-comment">// 如果查找到 并且 其对应的值是函数，那么直接执行</span>

    <span class="hljs-keyword">if</span>(typeof o[k] <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'function'</span>)<span class="hljs-keyword">return</span> o[k]()

    <span class="hljs-comment">// 如果没有查找到并且 默认d是字符串，那么就返回默认d值</span>

    <span class="hljs-keyword">if</span>(<span class="hljs-operator">!</span>o[k] <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> d <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> typeof d <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-string">'string'</span>)<span class="hljs-keyword">return</span> d

    <span class="hljs-comment">// 如果没有查找到并且 默认d是函数，那么就直接执行</span>

    <span class="hljs-keyword">if</span>(<span class="hljs-operator">!</span>o[k] <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> d <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> typeof d <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'function'</span>) <span class="hljs-keyword">return</span> d()

}
<span class="hljs-comment">// 如何使用</span>
<span class="hljs-comment">// 没有从type1 种匹配到 'wma'，就返回 'default'，匹配到就返回匹配值</span>
simplify(type1,<span class="hljs-string">'wma'</span>,<span class="hljs-string">'default'</span>)


simplify(type1,<span class="hljs-string">'wma1'</span>,()<span class="hljs-operator">=</span><span class="hljs-operator">></span>{
    <span class="hljs-comment">// 没有匹配到 执行该默认函数</span>
    console.log(<span class="hljs-string">'没有匹配到 执行该默认函数了'</span>)
})

复制代码
</code></pre><h2 id="h-if" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">if</h2><p>有这么段代码，代码如下</p><pre data-type="codeBlock" text="const a = 1
const b = 1
const c = 1

if (a === 1) {
    if (b === 1) {
        if (c === 1) {
            return &apos;a1-b1-c1&apos;
        } else if (c === 2) {
            return &apos;a1-b1-c2&apos;
        } else {
            return &apos;a1-b1-else&apos;
        }
    } else if (b === 2) {
        if (c === 1) {
            return &apos;a1-b2-c1&apos;
        } else if (c === 2) {
            return &apos;a1-b2-c2&apos;
        } else {
            return &apos;a1-b2-else&apos;
        }
    } else {
        if (c === 1) {
            return &apos;a1-else-c1&apos;
        } else if (c === 2) {
            return &apos;a1-else-c2&apos;
        } else {
            return &apos;a1-else-else&apos;
        }
    }
} else if (a === 2) {
    if (b === 1) {
        if (c === 1) {
            return &apos;a2-b1-c1&apos;
        } else if (c === 2) {
            return &apos;a2-b1-c2&apos;
        } else {
            return &apos;a2-b1-else&apos;
        }
    } else if (b === 2) {
        if (c === 1) {
            return &apos;a2-b2-c1&apos;
        } else if (c === 2) {
            return &apos;a2-b2-c2&apos;
        } else {
            return &apos;a2-b2-else&apos;
        }
    } else {
        if (c === 1) {
            return &apos;a2-else-c1&apos;
        } else if (c === 2) {
            return &apos;a2-else-c2&apos;
        } else {
            return &apos;a2-else-else&apos;
        }
    }
} else {
    if (b === 1) {
        if (c === 1) {
            return &apos;else-b1-c1&apos;
        } else if (c === 2) {
            return &apos;else-b1-c2&apos;
        } else {
            return &apos;else-b1-else&apos;
        }
    } else if (b === 2) {
        if (c === 1) {
            return &apos;else-b2-c1&apos;
        } else if (c === 2) {
            return &apos;else-b2-c2&apos;
        } else {
            return &apos;else-b2c-else&apos;
        }
    } else {
        if (c === 1) {
            return &apos;else-else-c1&apos;
        } else if (c === 2) {
            return &apos;else-else-c2&apos;
        } else {
            return &apos;else-else-else&apos;
        }
    }
}
复制代码
"><code>const a <span class="hljs-operator">=</span> <span class="hljs-number">1</span>
const b <span class="hljs-operator">=</span> <span class="hljs-number">1</span>
const c <span class="hljs-operator">=</span> <span class="hljs-number">1</span>

<span class="hljs-keyword">if</span> (a <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
    <span class="hljs-keyword">if</span> (b <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
        <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b1-c1'</span>
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b1-c2'</span>
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b1-else'</span>
        }
    } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (b <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
        <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b2-c1'</span>
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b2-c2'</span>
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b2-else'</span>
        }
    } <span class="hljs-keyword">else</span> {
        <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-else-c1'</span>
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-else-c2'</span>
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-else-else'</span>
        }
    }
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (a <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
    <span class="hljs-keyword">if</span> (b <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
        <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b1-c1'</span>
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b1-c2'</span>
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b1-else'</span>
        }
    } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (b <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
        <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b2-c1'</span>
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b2-c2'</span>
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b2-else'</span>
        }
    } <span class="hljs-keyword">else</span> {
        <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-else-c1'</span>
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-else-c2'</span>
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-else-else'</span>
        }
    }
} <span class="hljs-keyword">else</span> {
    <span class="hljs-keyword">if</span> (b <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
        <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b1-c1'</span>
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b1-c2'</span>
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b1-else'</span>
        }
    } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (b <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
        <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b2-c1'</span>
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b2-c2'</span>
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b2c-else'</span>
        }
    } <span class="hljs-keyword">else</span> {
        <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">1</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'else-else-c1'</span>
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-number">2</span>) {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'else-else-c2'</span>
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-keyword">return</span> <span class="hljs-string">'else-else-else'</span>
        }
    }
}
复制代码
</code></pre><blockquote><p>以上还只是写了不多的几个条件，如果很多就会变的很麻烦，不好维护，因此，我们把上面的代码扁平化再看看</p></blockquote><pre data-type="codeBlock" text="const a = 1
const b = 1
const c = 1

const elseValue = 99 // else 统一标识为 99 ，可以自定义

if(a===1 &amp;&amp; b===1 &amp;&amp; c===1){
     return &apos;a1-b1-c1&apos;
}else if(a===1 &amp;&amp; b===1 &amp;&amp; c===2){
    return &apos;a1-b1-c2&apos;
}else if(a===1 &amp;&amp; b===1 &amp;&amp; c===elseValue){
    return &apos;a1-b1-else&apos;
} else if(a===1 &amp;&amp; b===2 &amp;&amp; c===1){
     return &apos;a1-b2-c1&apos;
}else if(a===1 &amp;&amp; b===2 &amp;&amp; c===2){
    return &apos;a1-b2-c2&apos;
}else if(a===1 &amp;&amp; b===2 &amp;&amp; c===elseValue){
    return &apos;a1-b2-else&apos;
} else if(a===1 &amp;&amp; b===elseValue &amp;&amp; c===1){
     return &apos;a1-else-c1&apos;
}else if(a===1 &amp;&amp; b===elseValue &amp;&amp; c===2){
    return &apos;a1-else-c2&apos;
}else if(a===1 &amp;&amp; b===elseValue &amp;&amp; c===elseValue){
    return &apos;a1-else-else&apos;
}
else 

if(a===2 &amp;&amp; b===1 &amp;&amp; c===1){
     return &apos;a2-b1-c1&apos;
}else if(a===2 &amp;&amp; b===1 &amp;&amp; c===2){
    return &apos;a2-b1-c2&apos;
}else if(a===2 &amp;&amp; b===1 &amp;&amp; c===elseValue){
    return &apos;a2-b1-else&apos;
} else if(a===2 &amp;&amp; b===2 &amp;&amp; c===1){
     return &apos;a2-b2-c1&apos;
}else if(a===2 &amp;&amp; b===2 &amp;&amp; c===2){
    return &apos;a2-b2-c2&apos;
}else if(a===2 &amp;&amp; b===2 &amp;&amp; c===elseValue){
    return &apos;a2-b2-else&apos;
} else if(a===2 &amp;&amp; b===elseValue &amp;&amp; c===1){
     return &apos;a2-else-c1&apos;
}else if(a===2 &amp;&amp; b===elseValue &amp;&amp; c===2){
    return &apos;a2-else-c2&apos;
}else if(a===2 &amp;&amp; b===elseValue &amp;&amp; c===elseValue){
    return &apos;a2-else-else&apos;
}

else

if(a===elseValue &amp;&amp; b===1 &amp;&amp; c===1){
     return &apos;else-b1-c1&apos;
}else if(a==elseValue &amp;&amp; b===1 &amp;&amp; c===2){
    return &apos;else-b1-c2&apos;
}else if(a===elseValue &amp;&amp; b===1 &amp;&amp; c===elseValue){
    return &apos;else-b1-else&apos;
} else if(a===elseValue &amp;&amp; b===2 &amp;&amp; c===1){
     return &apos;else-b2-c1&apos;
}else if(a===elseValue &amp;&amp; b===2 &amp;&amp; c===2){
    return &apos;else-b2-c2&apos;
}else if(a===elseValue &amp;&amp; b===2 &amp;&amp; c===elseValue){
    return &apos;else-b2-else&apos;
} else if(a===elseValue &amp;&amp; b===elseValue &amp;&amp; c===1){
     return &apos;else-else-c1&apos;
}else if(a===elseValue &amp;&amp; b===elseValue &amp;&amp; c===2){
    return &apos;else-else-c2&apos;
}else if(a===elseValue &amp;&amp; b===elseValue &amp;&amp; c===elseValue){
    return &apos;else-else-else&apos;
}
复制代码
"><code>const a <span class="hljs-operator">=</span> <span class="hljs-number">1</span>
const b <span class="hljs-operator">=</span> <span class="hljs-number">1</span>
const c <span class="hljs-operator">=</span> <span class="hljs-number">1</span>

const elseValue <span class="hljs-operator">=</span> <span class="hljs-number">99</span> <span class="hljs-comment">// else 统一标识为 99 ，可以自定义</span>

<span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>){
     <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b1-c1'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span>){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b1-c2'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b1-else'</span>
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>){
     <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b2-c1'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span>){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b2-c2'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-b2-else'</span>
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>){
     <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-else-c1'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span>){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-else-c2'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a1-else-else'</span>
}
<span class="hljs-keyword">else</span> 

<span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>){
     <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b1-c1'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span>){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b1-c2'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b1-else'</span>
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>){
     <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b2-c1'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span>){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b2-c2'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-b2-else'</span>
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>){
     <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-else-c1'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span>){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-else-c2'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'a2-else-else'</span>
}

<span class="hljs-keyword">else</span>

<span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>){
     <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b1-c1'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span>){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b1-c2'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b1-else'</span>
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>){
     <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b2-c1'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span>){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b2-c2'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'else-b2-else'</span>
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>){
     <span class="hljs-keyword">return</span> <span class="hljs-string">'else-else-c1'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-number">2</span>){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'else-else-c2'</span>
}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(a<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> b<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> c<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>elseValue){
    <span class="hljs-keyword">return</span> <span class="hljs-string">'else-else-else'</span>
}
复制代码
</code></pre><blockquote><p>我们再进一步处理和优化</p></blockquote><pre data-type="codeBlock" text="const a = 1
const b = 1
const c = 1

const ValidValue = [1,2]
const elseValue = 99

// a 和 b、c的枚举值只能是约定好的 1 或 2，即使后面要加，我们在map对象里面也是很好加的，管理和维护一个对象更方便，else 我们统一标识为 99，你可以定义成其它

// 我们创建一个对象,依此来维护一个对象

const map = {
     &apos;{&quot;a&quot;:1,&quot;b&quot;:1,&quot;c&quot;:1}&apos;:()=&gt;&apos;a1-b1-c1&apos;,
     &apos;{&quot;a&quot;:1,&quot;b&quot;:1,&quot;c&quot;:2}&apos;:()=&gt;&apos;a1-b1-c2&apos;,
     &apos;{&quot;a&quot;:1,&quot;b&quot;:1,&quot;c&quot;:99}&apos;:()=&gt;&apos;a1-b1-else&apos;,
     &apos;{&quot;a&quot;:1,&quot;b&quot;:2,&quot;c&quot;:1}&apos;:()=&gt;&apos;a1-b2-c1&apos;,
     &apos;{&quot;a&quot;:1,&quot;b&quot;:2,&quot;c&quot;:2}&apos;:()=&gt;&apos;a1-b2-c2&apos;,
     &apos;{&quot;a&quot;:1,&quot;b&quot;:2,&quot;c&quot;:99}&apos;:()=&gt;&apos;a1-b2-else&apos;,
     &apos;{&quot;a&quot;:1,&quot;b&quot;:99,&quot;c&quot;:1}&apos;:()=&gt;&apos;a1-else-c1&apos;,
     &apos;{&quot;a&quot;:1,&quot;b&quot;:99,&quot;c&quot;:2}&apos;:()=&gt;&apos;a1-else-c2&apos;,
     &apos;{&quot;a&quot;:1,&quot;b&quot;:99,&quot;c&quot;:99}&apos;:()=&gt;&apos;a1-else-else&apos;,
     
     &apos;{&quot;a&quot;:2,&quot;b&quot;:1,&quot;c&quot;:1}&apos;:()=&gt;&apos;a2-b1-c1&apos;,
     &apos;{&quot;a&quot;:2,&quot;b&quot;:1,&quot;c&quot;:2}&apos;:()=&gt;&apos;a2-b1-c2&apos;,
     &apos;{&quot;a&quot;:2,&quot;b&quot;:1,&quot;c&quot;:99}&apos;:()=&gt;&apos;a2-b1-else&apos;,
     &apos;{&quot;a&quot;:2,&quot;b&quot;:2,&quot;c&quot;:1}&apos;:()=&gt;&apos;a2-b2-c1&apos;,
     &apos;{&quot;a&quot;:2,&quot;b&quot;:2,&quot;c&quot;:2}&apos;:()=&gt;&apos;a2-b2-c2&apos;,
     &apos;{&quot;a&quot;:2,&quot;b&quot;:2,&quot;c&quot;:99}&apos;:()=&gt;&apos;a2-b2-else&apos;,
     &apos;{&quot;a&quot;:2,&quot;b&quot;:99,&quot;c&quot;:1}&apos;:()=&gt;&apos;a2-else-c1&apos;,
     &apos;{&quot;a&quot;:2,&quot;b&quot;:99,&quot;c&quot;:2}&apos;:()=&gt;&apos;a2-else-c2&apos;,
     &apos;{&quot;a&quot;:2,&quot;b&quot;:99,&quot;c&quot;:99}&apos;:()=&gt;&apos;a2-else-else&apos;,
     
     &apos;{&quot;a&quot;:99,&quot;b&quot;:1,&quot;c&quot;:1}&apos;:()=&gt;&apos;else-b1-c1&apos;,
     &apos;{&quot;a&quot;:99,&quot;b&quot;:1,&quot;c&quot;:2}&apos;:()=&gt;&apos;else-b1-c2&apos;,
     &apos;{&quot;a&quot;:99,&quot;b&quot;:1,&quot;c&quot;:99}&apos;:()=&gt;&apos;else-b1-else&apos;,
     &apos;{&quot;a&quot;:99,&quot;b&quot;:2,&quot;c&quot;:1}&apos;:()=&gt;&apos;else-b2-c1&apos;,
     &apos;{&quot;a&quot;:99,&quot;b&quot;:2,&quot;c&quot;:2}&apos;:()=&gt;&apos;else-b2-c2&apos;,
     &apos;{&quot;a&quot;:99,&quot;b&quot;:2,&quot;c&quot;:99}&apos;:()=&gt;&apos;else-b2-else&apos;,
     &apos;{&quot;a&quot;:99,&quot;b&quot;:99,&quot;c&quot;:1}&apos;:()=&gt;&apos;else-else-c1&apos;,
     &apos;{&quot;a&quot;:99,&quot;b&quot;:99,&quot;c&quot;:2}&apos;:()=&gt;&apos;else-else-c2&apos;,
     &apos;{&quot;a&quot;:99,&quot;b&quot;:99,&quot;c&quot;:99}&apos;:()=&gt;&apos;else-else-else&apos;,
}
// map 的key 你也可以 这样写,如下
/*
const map = {
    [JSON.stringify({a:1,b:1,c:1})]:()=&gt;&apos;a1-b1-c1&apos;
}
*/
/**@description: 简化函数 对象key为对象字符串
 * @param { Object } o: 对象 map
 * @param { Object } c ：条件对象
 * @param { String | Function } d ：没有匹配到 给的默认值 或是 执行的默认函数 
 */
 const simplifyFunc = function (o, c, d) {
    const keys = Object.keys(o)
    if (!keys.length) throw Error(&apos;不接受空对象&apos;)
    const index = keys.findIndex(i =&gt; JSON.stringify(JSON.parse(i)) === JSON.stringify(c))
    const val = o[keys[index]]
    if (typeof val === &apos;string&apos;) return val
    if (typeof val === &apos;function&apos;) return val()
    if (!val &amp;&amp; typeof d === &apos;string&apos;) return d
    if (!val &amp;&amp; typeof d === &apos;function&apos;) return d()
}

simplifyFunc(map,{ 
    a:ValidValue.includes(a)?a:elseValue,
    b:ValidValue.includes(b)?a:elseValue,
    c:ValidValue.includes(c)?a:elseValue 
})
复制代码
"><code>const a <span class="hljs-operator">=</span> <span class="hljs-number">1</span>
const b <span class="hljs-operator">=</span> <span class="hljs-number">1</span>
const c <span class="hljs-operator">=</span> <span class="hljs-number">1</span>

const ValidValue <span class="hljs-operator">=</span> [<span class="hljs-number">1</span>,<span class="hljs-number">2</span>]
const elseValue <span class="hljs-operator">=</span> <span class="hljs-number">99</span>

<span class="hljs-comment">// a 和 b、c的枚举值只能是约定好的 1 或 2，即使后面要加，我们在map对象里面也是很好加的，管理和维护一个对象更方便，else 我们统一标识为 99，你可以定义成其它</span>

<span class="hljs-comment">// 我们创建一个对象,依此来维护一个对象</span>

const map <span class="hljs-operator">=</span> {
     <span class="hljs-string">'{"a":1,"b":1,"c":1}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a1-b1-c1'</span>,
     <span class="hljs-string">'{"a":1,"b":1,"c":2}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a1-b1-c2'</span>,
     <span class="hljs-string">'{"a":1,"b":1,"c":99}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a1-b1-else'</span>,
     <span class="hljs-string">'{"a":1,"b":2,"c":1}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a1-b2-c1'</span>,
     <span class="hljs-string">'{"a":1,"b":2,"c":2}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a1-b2-c2'</span>,
     <span class="hljs-string">'{"a":1,"b":2,"c":99}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a1-b2-else'</span>,
     <span class="hljs-string">'{"a":1,"b":99,"c":1}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a1-else-c1'</span>,
     <span class="hljs-string">'{"a":1,"b":99,"c":2}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a1-else-c2'</span>,
     <span class="hljs-string">'{"a":1,"b":99,"c":99}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a1-else-else'</span>,
     
     <span class="hljs-string">'{"a":2,"b":1,"c":1}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a2-b1-c1'</span>,
     <span class="hljs-string">'{"a":2,"b":1,"c":2}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a2-b1-c2'</span>,
     <span class="hljs-string">'{"a":2,"b":1,"c":99}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a2-b1-else'</span>,
     <span class="hljs-string">'{"a":2,"b":2,"c":1}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a2-b2-c1'</span>,
     <span class="hljs-string">'{"a":2,"b":2,"c":2}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a2-b2-c2'</span>,
     <span class="hljs-string">'{"a":2,"b":2,"c":99}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a2-b2-else'</span>,
     <span class="hljs-string">'{"a":2,"b":99,"c":1}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a2-else-c1'</span>,
     <span class="hljs-string">'{"a":2,"b":99,"c":2}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a2-else-c2'</span>,
     <span class="hljs-string">'{"a":2,"b":99,"c":99}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'a2-else-else'</span>,
     
     <span class="hljs-string">'{"a":99,"b":1,"c":1}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'else-b1-c1'</span>,
     <span class="hljs-string">'{"a":99,"b":1,"c":2}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'else-b1-c2'</span>,
     <span class="hljs-string">'{"a":99,"b":1,"c":99}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'else-b1-else'</span>,
     <span class="hljs-string">'{"a":99,"b":2,"c":1}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'else-b2-c1'</span>,
     <span class="hljs-string">'{"a":99,"b":2,"c":2}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'else-b2-c2'</span>,
     <span class="hljs-string">'{"a":99,"b":2,"c":99}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'else-b2-else'</span>,
     <span class="hljs-string">'{"a":99,"b":99,"c":1}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'else-else-c1'</span>,
     <span class="hljs-string">'{"a":99,"b":99,"c":2}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'else-else-c2'</span>,
     <span class="hljs-string">'{"a":99,"b":99,"c":99}'</span>:()<span class="hljs-operator">=</span><span class="hljs-operator">></span><span class="hljs-string">'else-else-else'</span>,
}
<span class="hljs-comment">// map 的key 你也可以 这样写,如下</span>
<span class="hljs-comment">/*
const map = {
    [JSON.stringify({a:1,b:1,c:1})]:()=>'a1-b1-c1'
}
*/</span>
<span class="hljs-comment">/**@description: 简化函数 对象key为对象字符串
 * @param { Object } o: 对象 map
 * @param { Object } c ：条件对象
 * @param { String | Function } d ：没有匹配到 给的默认值 或是 执行的默认函数 
 */</span>
 const simplifyFunc <span class="hljs-operator">=</span> <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">o, c, d</span>) </span>{
    const keys <span class="hljs-operator">=</span> Object.keys(o)
    <span class="hljs-keyword">if</span> (<span class="hljs-operator">!</span>keys.<span class="hljs-built_in">length</span>) <span class="hljs-keyword">throw</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">'不接受空对象'</span>)
    const index <span class="hljs-operator">=</span> keys.findIndex(i <span class="hljs-operator">=</span><span class="hljs-operator">></span> JSON.stringify(JSON.parse(i)) <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> JSON.stringify(c))
    const val <span class="hljs-operator">=</span> o[keys[index]]
    <span class="hljs-keyword">if</span> (typeof val <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'string'</span>) <span class="hljs-keyword">return</span> val
    <span class="hljs-keyword">if</span> (typeof val <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'function'</span>) <span class="hljs-keyword">return</span> val()
    <span class="hljs-keyword">if</span> (<span class="hljs-operator">!</span>val <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> typeof d <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'string'</span>) <span class="hljs-keyword">return</span> d
    <span class="hljs-keyword">if</span> (<span class="hljs-operator">!</span>val <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> typeof d <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'function'</span>) <span class="hljs-keyword">return</span> d()
}

simplifyFunc(map,{ 
    a:ValidValue.includes(a)?a:elseValue,
    b:ValidValue.includes(b)?a:elseValue,
    c:ValidValue.includes(c)?a:elseValue 
})
复制代码
</code></pre><p>以上两个代码简洁优化的核心原理 是创建一个对象，对象的key转换成了 字符串数组 或是 字符串对象，我们维护一个对象比维护一大堆if else 更方便</p><h2 id="h-switch" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">switch</h2><blockquote><p>switch 优化的第一反应应该是对象，但是也看具体情况</p></blockquote><pre data-type="codeBlock" text="function previewWeek(i){
    switch(i){
        case 1:
            return &apos;星期一&apos;
            break;
        case 2:
            return &apos;星期二&apos;
            break;
        case 3:
            return &apos;星期三&apos;
            break;  
        case 4:
            return &apos;星期四&apos;
            break;  
        case 5:
            return &apos;星期五&apos;
            break;  
        case 6:
            return &apos;星期六&apos;
            break;  
        case 7:
            return &apos;星期日&apos;
            break;
        default:
            return &apos;&apos;
    }
}
复制代码
"><code>function previewWeek(i){
    switch(i){
        case <span class="hljs-number">1</span>:
            <span class="hljs-keyword">return</span> <span class="hljs-string">'星期一'</span>
            <span class="hljs-keyword">break</span>;
        case <span class="hljs-number">2</span>:
            <span class="hljs-keyword">return</span> <span class="hljs-string">'星期二'</span>
            <span class="hljs-keyword">break</span>;
        case <span class="hljs-number">3</span>:
            <span class="hljs-keyword">return</span> <span class="hljs-string">'星期三'</span>
            <span class="hljs-keyword">break</span>;  
        case <span class="hljs-number">4</span>:
            <span class="hljs-keyword">return</span> <span class="hljs-string">'星期四'</span>
            <span class="hljs-keyword">break</span>;  
        case <span class="hljs-number">5</span>:
            <span class="hljs-keyword">return</span> <span class="hljs-string">'星期五'</span>
            <span class="hljs-keyword">break</span>;  
        case <span class="hljs-number">6</span>:
            <span class="hljs-keyword">return</span> <span class="hljs-string">'星期六'</span>
            <span class="hljs-keyword">break</span>;  
        case <span class="hljs-number">7</span>:
            <span class="hljs-keyword">return</span> <span class="hljs-string">'星期日'</span>
            <span class="hljs-keyword">break</span>;
        default:
            <span class="hljs-keyword">return</span> <span class="hljs-string">''</span>
    }
}
复制代码
</code></pre><p>用 对象形式优化</p><pre data-type="codeBlock" text="function previewWeek(i){
    return ({
        1:&apos;星期一&apos;,
        2:&apos;星期二&apos;,
        3:&apos;星期三&apos;,
        4:&apos;星期四&apos;,
        5:&apos;星期五&apos;,
        6:&apos;星期六&apos;,
        7:&apos;星期日&apos;,
    })[i] || &apos;&apos;
}
复制代码
"><code><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">previewWeek</span>(<span class="hljs-params">i</span>)</span>{
    <span class="hljs-keyword">return</span> ({
        <span class="hljs-number">1</span>:<span class="hljs-string">'星期一'</span>,
        <span class="hljs-number">2</span>:<span class="hljs-string">'星期二'</span>,
        <span class="hljs-number">3</span>:<span class="hljs-string">'星期三'</span>,
        <span class="hljs-number">4</span>:<span class="hljs-string">'星期四'</span>,
        <span class="hljs-number">5</span>:<span class="hljs-string">'星期五'</span>,
        <span class="hljs-number">6</span>:<span class="hljs-string">'星期六'</span>,
        <span class="hljs-number">7</span>:<span class="hljs-string">'星期日'</span>,
    })[i] <span class="hljs-operator">|</span><span class="hljs-operator">|</span> <span class="hljs-string">''</span>
}
复制代码
</code></pre><p>是不一样了，代码确实少了很多，其实观察其特征，不用对象也是可以优化的，这特征就是规律，键值都是对应的，1的值是 &apos;星期一&apos;,都是 1，和索引有关系，那么索引和数组有关系，那么我们用数组试试呢</p><pre data-type="codeBlock" text="function previewWeek(i){
    return  i&gt;0 &amp;&amp; i&lt;8 ?&apos;星期&apos;+[&apos;一&apos;,&apos;二&apos;,&apos;三&apos;,&apos;四&apos;,&apos;五&apos;,&apos;六&apos;,&apos;日&apos;][i-1]:&apos;&apos;
}
复制代码
"><code><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">previewWeek</span>(<span class="hljs-params">i</span>)</span>{
    <span class="hljs-keyword">return</span>  i<span class="hljs-operator">></span><span class="hljs-number">0</span> <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> i<span class="hljs-operator">&#x3C;</span><span class="hljs-number">8</span> ?<span class="hljs-string">'星期'</span><span class="hljs-operator">+</span>[<span class="hljs-string">'一'</span>,<span class="hljs-string">'二'</span>,<span class="hljs-string">'三'</span>,<span class="hljs-string">'四'</span>,<span class="hljs-string">'五'</span>,<span class="hljs-string">'六'</span>,<span class="hljs-string">'日'</span>][i<span class="hljs-number">-1</span>]:<span class="hljs-string">''</span>
}
复制代码
</code></pre><p>于是我们懂得了，方法很多，只是未能找到最适合的那个，就写到这里吧，感谢你的阅读，如果对你有用，求个赞</p><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">结语</h2><p>如果你有更好的想法，欢迎留言</p><p>文中若有不准确或错误的地方，欢迎指出</p>]]></content:encoded>
            <author>jay-2@newsletter.paragraph.com (Jay)</author>
        </item>
        <item>
            <title><![CDATA[Q&A]]></title>
            <link>https://paragraph.com/@jay-2/q-a</link>
            <guid>gXGmZW2vW4s5trfTUu9S</guid>
            <pubDate>Mon, 08 Nov 2021 02:16:02 GMT</pubDate>
            <description><![CDATA[webpack相关1.打包体积 优化思路提取第三方库或通过引用外部文件的方式引入第三方库代码压缩插件UglifyJsPlugin服务器启用gzip压缩按需加载资源文件 require.ensure优化devtool中的source-map剥离css文件，单独打包去除不必要插件，通常就是开发环境与生产环境用同一套配置文件导致2.打包效率开发环境采用增量构建，启用热更新开发环境不做无意义的工作如提取css计算文件hash等配置devtool选择合适的loader个别loader开启cache 如babel-loader第三方库采用引入方式提取公共代码优化构建时的搜索路径 指明需要构建目录及不需要构建目录模块化引入需要的部分3.说一下webpack的一些plugin，怎么使用webpack对项目进行优化 构建优化减少编译体积 ContextReplacementPugin、IgnorePlugin、babel-plugin-import、babel-plugin-transform-runtime并行编译 happypack、thread-loader、uglifyjsWebpackP...]]></description>
            <content:encoded><![CDATA[<h4 id="h-webpack" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">webpack相关</h4><p><strong>1.打包体积 优化思路</strong></p><ul><li><p>提取第三方库或通过引用外部文件的方式引入第三方库</p></li><li><p>代码压缩插件UglifyJsPlugin</p></li><li><p>服务器启用gzip压缩</p></li><li><p>按需加载资源文件 require.ensure</p></li><li><p>优化devtool中的source-map</p></li><li><p>剥离css文件，单独打包</p></li><li><p>去除不必要插件，通常就是开发环境与生产环境用同一套配置文件导致</p></li></ul><p><strong>2.打包效率</strong></p><ul><li><p>开发环境采用增量构建，启用热更新</p></li><li><p>开发环境不做无意义的工作如提取css计算文件hash等</p></li><li><p>配置devtool</p></li><li><p>选择合适的loader</p></li><li><p>个别loader开启cache 如babel-loader</p></li><li><p>第三方库采用引入方式</p></li><li><p>提取公共代码</p></li><li><p>优化构建时的搜索路径 指明需要构建目录及不需要构建目录</p></li><li><p>模块化引入需要的部分</p></li></ul><p><strong>3.说一下webpack的一些plugin，怎么使用webpack对项目进行优化</strong> <strong>构建优化</strong></p><ul><li><p>减少编译体积 ContextReplacementPugin、IgnorePlugin、babel-plugin-import、babel-plugin-transform-runtime</p></li><li><p>并行编译 happypack、thread-loader、uglifyjsWebpackPlugin开启并行</p></li><li><p>缓存 cache-loader、hard-source-webpack-plugin、uglifyjsWebpackPlugin开启缓存、babel-loader开启缓存</p></li><li><p>预编译 dllWebpackPlugin &amp;&amp; DllReferencePlugin、auto-dll-webapck-plugin</p></li></ul>]]></content:encoded>
            <author>jay-2@newsletter.paragraph.com (Jay)</author>
        </item>
    </channel>
</rss>