在複習廖雪峰老師的JS教程時,看到數組,又遇到了之前做過的那道小題,題目如下: 練習:在新生歡迎會上,你已經拿到了新同學的名單,請排序後顯示:歡迎XXX,XXX,XXX和XXX同學!: 給出了數組: 這道題作為一個練習並不是很難,當時自己第一次看也是按照最直接的辦法,使用了${arr[i]}來拿到對 ...
在複習廖雪峰老師的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 }
就是這樣啦,挺簡單的一個小題目,但是也算是鍛煉了自己的邏輯思維能力,自勉一句:“多想,多做!”