计算在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