实现字符串转含单词及对应长度的数组,代码报错求修正
修正后的代码及问题说明
你的代码存在两个关键问题:
map回调函数里误用了全局的str参数,还错误引用了整个words数组,应该使用当前遍历到的单个单词元素;- 使用
$(words)这种无效语法拼接字符串,JS里需要用模板字符串或者+运算符来完成内容拼接。
修正后的代码如下:
function nameLength(str) { const words = str.split(" "); return words.map(word => `${word} ${word.length}`); } console.log(nameLength("hawaii pizza")); // 输出: [ 'hawaii 6', 'pizza 5' ]
关键修正点:
- 把
map的回调参数改为word,代表当前遍历到的数组元素(即每个独立单词); - 用ES6模板字符串(
`${变量}`)拼接单词和它的长度,语法正确且可读性更强; - 取
word.length而非words.length,这样获取的是单个单词的长度,而非整个数组的元素数量。
内容的提问来源于stack exchange,提问作者mexpaino
相关产品推荐
相关产品推荐

