如何编写JavaScript函数打印字符串每个字符?现有代码仅输出首字符求帮助
问题分析与修复
首先看一下你的代码里的几个关键问题:
str.charAt(str[i])是错误用法:charAt()方法需要传入索引数字,但你传的str[i]是字符串里的具体字符(比如i=0时,str[i]是"g")。非数字参数会被转换成NaN,而charAt(NaN)等价于charAt(0),所以循环里每次赋值的x都是第一个字符"g"。- 你只在函数最后
return x,并在外部打印一次返回值,这完全没法实现「逐个打印每个字符」的需求——你需要在循环内部就完成打印操作,而不是最后返回单个值。
这里是修正后的代码:
function myFunc(str) { // 遍历字符串的每个索引 for (var i = 0; i < str.length; i++) { // 通过索引获取字符并打印,两种写法二选一即可 var char = str[i]; // var char = str.charAt(i); console.log(char); } } // 调用函数测试 myFunc("great");
额外小提示:
获取字符串单个字符有两种常用方式:str[i](ES5及以上版本支持)和str.charAt(i)。正常索引下两者效果一致,区别是当索引超出字符串长度范围时,str[i]返回undefined,str.charAt(i)返回空字符串。
内容的提问来源于stack exchange,提问作者Brukk
相关产品推荐
相关产品推荐

