老师您好,我想把改成大写后的TOMORROW替换到原字符串中去,下面的代码为什么实现不了呢?

老师您好,我想把改成大写后的TOMORROW替换到原字符串中去,下面的代码为什么实现不了呢?

<!DOCTYPE html>

<html>


<head lang="en">

<meta charset="UTF-8">

<title>慕课网练习</title>

<script>

var str = "Never deter till tomorrow that which you can do today";

var index = str.indexOf("tomorrow");

console.log(index);

var strNew = str.substr(index,8);

//console.log(strNew);

var upperStr = strNew.toUpperCase();

console.log(upperStr);

var m = 0;

for(i=index;i<index+8;i++){

str[i] = upperStr[m];

m++;

}

console.log(str);

</script>


</head>


<body>

</body>


</html>


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

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

3回答
好帮手慕星星 2019-06-11 19:26:37

你好,理解为浏览器机制即可,在 JavaScript 中,字符串的值是不可变的。例如:

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

虽然索引的方式可以拿到字符串中的部分值,但是是不规范的,应该使用 charAt(index) 方法获取部分值。

祝学习愉快!

好帮手慕星星 2019-06-09 19:47:40

你好,简写的写法可以是使用replace替换,参考:

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

将转化大写之后的内容替换之前的。

在for循环中虽然赋值了,但是不能改变原字符串中的内容,所以不能使用这种赋值方式哦。

自己可以测试下,祝学习愉快!

  • 提问者 前端之路漫漫 #1
    "在for循环中虽然赋值了,但是不能改变原字符串中的内容,所以不能使用这种赋值方式哦" 这是为什么呢?
    2019-06-11 17:12:47
提问者 前端之路漫漫 2019-06-09 17:47:25

输出的str 仍然是原来的样子,没有任何改变,如果我要实现将tomorrow换成TOMORROW,思路应该是怎么样的呢?

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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