老师我这么写为什么不行呢
function b(a){
var c=a.split(" ");
var y=new Array();
var q;
for(var i=0;i<a.length;i++){
q=c[i];
var p=q.toUpperCase();
var t=p.slice(0,1);
var o=t.concat(q.slice(1));
y.push(o);
}
return document.write(y);
}
b("all time is to time when it is past");
这是返回的问题!是什么意思 Cannot read property 'toUpperCase' of undefined
正在回答
你好同学 , 根据最后一次上传的代码 ,效果实现了 . 同学对反复修改优化多次 , 能够看到出来 ,同学很善于思考 , 并且有独立解决问题的能力 . 这一点是一个优秀的开发工程师应该具备的能力 . 相信同学在解决问题的过程中自己也会有所提升 , 收获满满 . 也希望同学在未来的学习中 , 继续不断的锻炼提升自己的能力 , 加油 !
祝学习愉快 !
<script type="text/javascript"> function b(a){ var a="all time is to time when it is past";/*可以改为prompt*/ var c=a.split(" "),y=new Array(); ; for(var i=0;i<c.length;i++){ y.push(c[i].slice(0,1).toUpperCase().concat(c[i].slice(1))); } document.write(y.join(" ")+"<br>"); } b(); </script>
<script type="text/javascript">
var a="all time is to time when it is past";/*预先知道要转换的字符串,放进函数也可以,但是我觉得没必要!*/
function b(a){
/*var a=prompt("请输入需要转换首字母的字符串!");*//*预先不知道要转换的字符串,全部封装,调用函数时不传参数*/
var c=a.split(" ");/*讲字符串分割转换分割成数组*/
var y=new Array();/*新建数组,用于保存转换首字母后的的字符串*/
for(var i=0;i<c.length;i++){
var t=c[i];/*接受数组的每一项*/
var u=t.slice(0,1).toUpperCase();/*将每一个数组项的字符串的首字母截取出来,并转换为大写*/
var o=u.concat(t.slice(1));/*链接首字母数组项的剩余字符!*/
y.push(o);/*把首字母转换好的数组项压入新的数组*/
}
var z=y.join(" ");/*将转换完成的数字转换为字符串用空格隔开*/
document.write(z+"<br>");/*输出字符串*/
}
b(a);/*调用函数*/
</script>
刚才发错了!找到原因了!我挨个排查之后!发现是因为a.length的原因!循环给的i<a.length是字符串的长度是三十五!而遍历数组的话!数组的长度是九!九次之后UpperCase找不到了!因为九次之后变量t全是undefined!所以老是报错!
var input=prompt('请输入手机号'),
input1=input.slice(7),//截取号码后4位
input2='*******',//声明新字符串为相应个数的*(原字符串个数-截取后的字符串个数,)
input3=input2+input1;//拼接后的字符串与初始字符串个数相等
document.write(input3);//拼接后将新字符串输出在页面上
可以了老师找到原因了!
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星