You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript编写按键次数统计时访问对象属性返回NaN如何解决

问题原因
  • 对象属性访问方式错误:你使用whigt.el的点语法访问属性时,JavaScript会直接查找whigt对象上名为el的固定属性,不会把el当做变量解析为当前遍历的字符,你的whigt对象不存在el属性,所以返回undefined,后续运算就会得到NaN。
  • 现有逻辑只有遍历打印,没有实现按键次数累加、返回最终结果的功能。
修正后完整代码
let whigt = {
  A: 1,
  B: 2,
  C: 3,
  D: 1,
  E: 2,
  F: 3,
  G: 1,
  H: 2,
  I: 3,
  J: 1,
  K: 2,
  L: 3,
  M: 1,
  N: 2,
  O: 3,
  P: 1,
  Q: 2,
  R: 3,
  S: 4,
  T: 1,
  U: 2,
  V: 3,
  W: 1,
  X: 2,
  Y: 3,
  Z: 4,
  // 如果需要支持输入空格,添加这一行即可
  // ' ': 1
}

function presses(phrase) {
  // 转大写后拆分为单个字符,用reduce累加所有字符的按键次数
  return phrase.toUpperCase().split('').reduce((total, char) => {
    return total + whigt[char]
  }, 0)
}

console.log(presses("omar")) // 输出结果为:1(O)+1(M)+1(A)+3(R)= 6
改动说明
  • 把点语法whigt.el替换为方括号语法whigt[char],方括号内可以传入变量,动态匹配对应键的数值。
  • 用reduce方法替代map遍历,直接在遍历过程中累加总按键次数,省去额外声明全局计数变量的步骤。
  • 函数直接返回统计结果,调用后可直接获取总按键次数。

内容的提问来源于stack exchange,提问作者user15815618

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:36:04