请问老师,我的代码错在了哪里?

请问老师,我的代码错在了哪里?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>首字母变大写</title>
</head>
<body>
<script>
    //补充代码
    var x="all time is no time when it is past";
    var b=x.split(" ");
    function allUpper(one){
        for(var i=0;i<b.length;i++){
            var c=b.charAt(i);
            var d=c.charAt(0).toUpperCase()+c.charAt(1);
            
        }
        return d;
    }
    var a=allUpper(x);
    document.write(a);
</script>
</body>
</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
山河远阔ZZ 2019-01-28 10:43:49

同学你好,代码有以下几个问题:

1、b相当于是一个数组,里面存放的是字符,所以想把字符一个个取出来,是通过var c=b[i]来获取。

2、把变量b声明在全局,变量b是用来存放首字母变成大写的新的字符,所以var b = ‘’;定义成字符串类型。

3、每个字符的首字母变成大写之后,要使用“+”连接在一起。

参考下图修改:

http://img1.sycdn.imooc.com//climg/5c4e6c410001cce909190510.jpg

自己测试一下,希望帮助到了你,欢迎采纳!
祝学习愉快!

  • 提问者 杨槑槑 #1
    老师提到的,想把字符一个个取出来,是通过var c=b[i]来获取。那么var c=b.charAt(i);是不是也能达到相同的效果?
    2019-01-28 13:45:16
  • 山河远阔ZZ 回复 提问者 杨槑槑 #2
    charAt() 方法可返回指定位置的字符,而这个效果需要的是把英文单词取出来,例如:数组b的值是["all","time","is","no","time","when","it","is","past"],想要把里面的英文单词取出来,需要通过数组的下标来获取,i值从0开始,b[0]就是第一个,以此类推,就能把英文单词都获取出来,然后在通过charAt(0),找到英文单词的首字母,并转成大写。
    2019-01-28 13:54:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师