# Mock Interview ## ALL ### BQ * 為什麼想當工程師? * 為什麼想當前端工程師? * 遇到最困難的問題是什麼?如何解決? * 最值得一提的 feature? 為什麼? * 最近看過的新的東西或技術? ### Vue * Lifecycle and hooks * Vuex / actions and mutations ### JavaScript * Closure * Event loop * Prototype chain * async/await ### Front-end * *** ## Reading * https://www.npmjs.com/package/country-codes-iso-converter * https://www.npmjs.com/package/currency-converter-lt ```javascript= [1, 2, 3, 4].flatMap(x => [x, x + 0.5]); [[0, 1], [2, 3], [4, 5]].reduceRight( (accumulator, currentValue) => accumulator.concat(currentValue) ); ``` ## Coding 1. create a function that can print out following results (do not create global variable) ```javascript counter() // 1 counter() // 2 counter() // 3 ... ``` 2. 每秒印出數字,從 1 到 5 [sample answer](https://replit.com/@tsungtingdu/mock-interview-counter-sample-answers) ```javascript= counter() // 1 // 2 // 3 // 4 // 5 ``` 3. 篩選出每個 key 最高 score 的資料 [data](https://replit.com/@tsungtingdu/mock-interview-merge-data) ```javascript= const a_api_result = { key1: { score: 110, subkey: 'a-1' }, key3: { score: 220, subkey: 'a-3' }, key4: { score: 350, subkey: 'a-4' }, } const b_api_result = { key2: { score: 190, subkey: 'b-2' }, key3: { score: 300, subkey: 'b-3' }, key4: { score: 320, subkey: 'b-4' }, } const c_api_result = { key4: { score: 290, subkey: 'c-4' }, key5: { score: 420, subkey: 'c-5' }, } mergeResult([a_api_result, b_api_result, c_api_result]) // expected result // { // key1: {...}, // key2: {...}, // key3: {...}, // key4: {...}, // key5: {...} // } ``` 4. filter data [data](https://codepen.io/tsungtingdu-the-bold/pen/rNYNZPX) ```javascript= const data = [ { name: 'alice', gender: 'female' }, { name: 'alex', gender: 'male' }, { name: 'angela', gender: 'female' }, { name: 'jennifer', gender: 'female' }, { name: 'john', gender: 'male' }, { name: 'johnny' }, { name: 'josh', gender: 'male' }, { name: 'katie', gender: 'female' }, { name: 'kenny', gender: 'unknown' }, { name: 'ken', gender: 'male' }, ] // write your code below ```