用 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 浏览量

开启你的职业生涯

通过完成该课程获得认证

开始
广告