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

JS使用reduce求最长单词长度结果异常及编辑器缩进问题求助

问题1:reduce计算最长字符串长度返回结果异常

错误原因

你第一次迭代判断后返回的是数字类型的长度值,而非字符串类型。后续迭代时访问longest.length,数字不存在length属性,取值为undefined,undefined和数字比较大小返回false,所以每轮都会返回当前遍历元素的长度,最终返回最后一个元素se的长度2。

修复方案

方案1:累积值保留最长字符串,最终取长度

let arr = ['howss', 'fuund', 'se']
let longestLength = arr.reduce((longest, currentWord) => 
  longest.length > currentWord.length ? 
  longest : currentWord , "").length

console.log(longestLength) // 输出5

方案2:累积值直接存储最大长度,初始值设为0

let arr = ['howss', 'fuund', 'se']
let longestLength = arr.reduce((maxLen, currentWord) => 
  maxLen > currentWord.length ? maxLen : currentWord.length , 0)

console.log(longestLength) // 输出5
问题2:编辑器行缩进对齐调整

可按以下方式操作:

  • 自动格式化:选中对应代码块,VS Code按Shift+Alt+F(Windows)/Shift+Option+F(Mac),WebStorm按Ctrl+Alt+L(Windows)/Cmd+Option+L(Mac)触发自动格式化,通常会自动修正行归属和缩进。
  • 手动调整:如果自动格式化不符合预期,可选中第97行,按Ctrl+[减少缩进、Ctrl+]增加缩进,手动调整到和第92行对齐即可。如果要避免后续编辑器再次将其识别为第93行的一部分,可给reduce的回调函数体加上大括号包裹,明确块边界。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:57:04