用 JavaScript 計算輸入單詞所需時間
假設我們有一個關鍵字,它不使用傳統的 QWERTY 型別金鑰對映,而是根據英語字母順序對映鍵,即 ABCDE...
在深入探討問題之前,我們必須做出以下兩個假設:
當前我們的指尖位於索引 0,即鍵“a
從一個鍵移動到另一個鍵所花費的時間是它們的索引絕對差,例如從“a”移動到“k”所花費的時間為 |0 - 10| = 10
我們需要編寫一個 JavaScript 函式,它接受一個英語小寫字母字串並計算並返回輸入該字串所需的時間。
例如:
如果輸入字串為:
const str = 'dab';
輸出
const output = 7;
因為發生的移動為:
'a' -> 'd' = 3 'd' -> 'a' = 3 'a' -> 'b' = 1
示例
程式碼如下:
const str = 'dab'; const findTimeTaken = (str = '') => { let timeSpent = 0; const keyboard = 'abcdefghijklmnopqrstuvwxyz'; let curr = 'a'; for(let i = 0; i < str.length; i++){ const el = str[i]; const fromIndex = keyboard.indexOf(curr); const toIndex = keyboard.indexOf(el); const time = Math.abs(fromIndex - toIndex); curr = el; timeSpent += time; }; return timeSpent; }; console.log(findTimeTaken(str));
輸出
控制檯中的輸出將為:
7
廣告