如何找出数组中字符数最多的单词?(附错误JavaScript代码求助)
找出数组中字符数最多的单词
原代码问题分析
- 变量
lnght初始化为空字符串'',与数字类型的length比较时会触发隐式类型转换,逻辑不严谨; - 循环内部用
let lnght = countries[i].length;重新声明了局部变量,导致外层的lnght始终无法更新,无法记录当前最长字符串的长度。
修正后的基础实现
const countries = [ 'Albania', 'Bolivia', 'Canada', 'Denmark', 'Ethiopia', 'Finland', 'Germany', 'Hungary', 'Ireland', 'Japan', 'Kenya' ] let lnght = 0; let longest; for(let i=0; i<countries.length; i++){ if(countries[i].length > lnght) { lnght = countries[i].length; longest = countries[i]; } } console.log(longest); // 输出Ethiopia
更简洁的实现方式(使用reduce)
const countries = [ 'Albania', 'Bolivia', 'Canada', 'Denmark', 'Ethiopia', 'Finland', 'Germany', 'Hungary', 'Ireland', 'Japan', 'Kenya' ] const longest = countries.reduce((prev, curr) => { return curr.length > prev.length ? curr : prev; }, ''); console.log(longest); // 输出Ethiopia
内容的提问来源于stack exchange,提问作者Mithlesh Kumar
相关产品推荐
相关产品推荐

