iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
自我挑戰組

Jr 前端工程師面試題目檢討賽系列 第 5

【2023 挑戰賽 Day5】 #JS #面試經驗 邏輯及陣列處理

  • 分享至 

  • xImage
  •  

閒聊面試經驗

星期日午安!今天也是挑戰賽的第五天,討論題目前先來閒聊一下好了~

我回顧了過去一個多月在近 20 家公司的面試經驗,發現有的公司會出「邏輯測驗」,邏輯測驗是什麼呢?這跟寫程式本身不太一樣,有點像在測驗面試者的智力、文字閱讀能力跟推理能力 XD

例如這種圖形推理(圖片來自 Andy Huang 的 Medium):
https://ithelp.ithome.com.tw/upload/images/20230917/201631538TJglcviLl.png

也有的是文字推理,當初我遇到一個題目,題目上給了六個人的名子,他們各有對應的職業(理髮師、超商店員、酒商...),我們要答出誰是做哪一個職業,下面就有六段開始描述:理髮師跟店員是好朋友、Bob 跟 Alice 是鄰居但不會一起去理髮院......等等,我拿著原子筆,在白紙上試圖描繪他們六人的關係圖, 一度懷疑我今天是來應徵推理小說家嗎?

/images/emoticon/emoticon01.gif

不知道各位前輩或同學們,對於前端工程師面試做邏輯測驗的想法是什麼呢?雖然做題的當下是覺得滿好玩的,我也不討厭,但如果我是面試官,可能會把時間花費在其他地方吧,例如多跟面試者聊聊,或用其他測驗了解面試者跟工作更直接相關的專業能力上。

今天挑選的兩道 JS 題目也有一點簡單的推理,這兩個題目來自於一個滿舒服的面試經驗,面試官給我一台電腦說我可以上網 Google,也坐在旁邊並說有問題就問他。題目比 LeetCode Easy 還要簡單,面試官叔叔本身是資工背景,從硬體做到韌體及軟體,從最底層的 C 開始學到 PHP,精通各種語言,卻跟我說他覺得 Easy 題目對於他們要找的初階工程師來說太難了,沒有必要在面試中使用。

我遇過切斷網路不讓面試者上網的、也遇過態度很兇咄咄逼人的考官,雖然當時解題中間也有卡關、並向面試官求助,但整體面試設計的過程會讓我感到被尊重、受到適當的提醒及指導,留下很正向的印象。

那就開始囉!

JS 題目

PS:這兩題的設計其實是跟 DOM 操作有關的,不過我這邊先拿掉了,單純討論 JS 函數的部分。

題目1

題目描述:完成一個 JavaScript 函數,該函數不接受任何參數,並能夠返回包含 20 個元素的陣列。數列的前幾個元素應該如下所示:1, 2, 4, 7, 11, 16, ...

提示:把數列後一個元素減去前一個元素,就能看出規律(array[n]-array[n-1]=n)

答案

function myFunc(){
    const array = [1] // 先創建一個陣列
    for(let i=1 ; i<20 ; i++){
        let nextElement = array[i-1]+i 
          array.push(nextElement)
}
        return array
}

myFunc() // Array(20) [ 1, 2, 4, 7, 11, 16, 22, 29, 37, 46, … ] 

題目2

題目描述:完成一個 JavaScript 函數,該函數接受一個整數參數 n(1 <= n <= 99),如果給予的參數為 4,就會輸出以下結果

1
22
333
4444

提示:nested for-loop
提示:記得要把數字轉成字串

答案:

function myFunc(a){
    let answer = '' // 使用字串而不是陣列
    for(let i=1; i <= a; i++){
        for(let j=1; j<=i ; j++ ){
          answer = answer.concat(i) // 此處注意要 push 外層的 i 
          }
        answer = answer.concat('\n') // 換行元素
      } 
    console.log(answer)
}

myFunc(5) 
// 
"1
22
333
4444
55555"

這樣便能看到金字塔結果了!

好了,今天的作業就到這邊,明天是星期一,祝大家上班愉快~XD


上一篇
【2023 挑戰賽 Day4】#轉職經驗 那裡還有許多混沌與未知
下一篇
【2023 挑戰賽 Day6】 #JS #面試經驗 字串操作
系列文
Jr 前端工程師面試題目檢討賽14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言