用 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

更新於:2021 年 2 月 26 日

222 瀏覽量

開啟你的職業生涯

透過完成該課程獲得認證

開始
廣告