• 关于一道数组习题的可扩展性思考


    在复习廖雪峰老师的JS教程时,看到数组,又遇到了之前做过的那道小题,题目如下:

    练习:在新生欢迎会上,你已经拿到了新同学的名单,请排序后显示:欢迎XXX,XXX,XXX和XXX同学!

    给出了数组:

    1 'use strict';
    2 var arr = ['小明', '小红', '大军', '阿黄'];

    这道题作为一个练习并不是很难,当时自己第一次看也是按照最直接的办法,使用了${arr[i]}来拿到对应的数组元素,使用alert(``)输出。

    但今天自己再看这道题的时候,脑子中突然冒出一个想法,之前的做法过于局限,如果不是欢迎四个同学,要欢迎五个、六个或者更多的同学呢,之前的方法就必须重写,没有重用性可言,所以自己就想怎么能写出可扩展的方法,同时保留原先的格式,就把要输出的语句做了一个拆解,可以分为三部分:

    (1)欢迎xxx

    (2),xxx

    (3)和xxx同学!

    可以发现除了第一部分和最后一部分需要单独处理,第二部分是一个可以循环的结构,所以针对这些特点,我就写了如下一个方法:

     1 function SayHello(arr){
     2    let str = '';
     3    for(let i = 0; i < arr.length; i++){
     4       if(i === arr.length - 1){
     5          str += `和${arr[i]}同学!`;
     6       }else if(i === 0){
     7          str += `欢迎${arr[i]}`;
     8       }else{
     9          str += `,${arr[i]}`;
    10       }
    11    }
    12    return str;
    13 }

    就是这样啦,挺简单的一个小题目,但是也算是锻炼了自己的逻辑思维能力,自勉一句:“多想,多做!”

  • 相关阅读:
    SAP MM MIGO过账报错
    SAP MM MB5L事务代码'仅总计'选项初探
    SAP MM 巴西采购订单中的NCM Code
    SAP MM Storage Location Missing in MD04 Result?
    SAP MM 预留单据的历史修改记录?
    2018-8-10-上传代码-CodePlex
    2019-9-2-win10-uwp-九幽图床
    2018-2-13-win10-UWP-应用设置
    2018-2-13-win10-UWP-你写我读
    2018-2-13-win10-UWP-九幽登录
  • 原文地址:https://www.cnblogs.com/enjoymylift/p/6053523.html
Copyright © 2020-2023  润新知