总是觉得还有更加漂亮的实现方法

总是觉得还有更加漂亮的实现方法

function write(str) {
    document.write(`${str}<br/>`);
    console.log(str)
}

var str = "JavaScript 是属于网络的脚本语言!JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。JavaScript 是因特网上最流行的脚本语言。JavaScript很容易使用!你一定会喜欢它的!";
var count = 0;
for (var fromIndex = 0; fromIndex < str.length; fromIndex += 10) {
    var index = str.indexOf('JavaScript', fromIndex);
    if (index === -1) {
        write(`JavaScript在这段话中出现了${count}次`);
        break;
    }
    write(`JavaScript第${++count}次出现是在${fromIndex = index}的位置`);
}


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

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

3回答
好帮手慕夭夭 2019-02-12 09:48:59

你好同学 ,上传的代码实现了效果 , 继续加油 ! 不过代码的简洁性固然重要 ,但是并不是越简洁的代码就越好  . 还要考虑代码怎么样更方便我们维护 , 怎么样提高性能 , 怎样提高代码的复用性 等等 .

例如项目比较大的时候 , 有一些代码可能会重复使用到的 . 我们假设字符串str多次被用到 . 把它赋值给一个 变量str. 那么每次使用的时候 , 只要操作str即可 . 当以后str的内容需要改变的时候 , 也知道修改一次内容即可 . 如果按照同学最后一次的代码中 , 直接去操作这段字符串 , 那么使用了几次 ,就要修改几次 .这样就不便于后期的维护了 . 所以推荐同学使用你第一次上传的代码 . 

这就是一个简单的代码可维护性的考虑 . 当然 , 代码的优化目前不是我们要过多考虑的 . 在学习初期 , 我们更注重的是按照自己的思维方式 , 灵活的运用代码去实现效果 . 先锻炼自己的逻辑思维 , 循序渐进 , 以后在学习的比较深入时 ,再去考虑代码的优化 . 这才是一个正确的学习顺序 .

祝学习愉快 ,望采纳 .

  • 提问者 _不名_ #1
    ……replace不改变原有字符串 从运行效率上多了一个创建字符串的过程和一个回收过程
    2019-02-12 13:11:19
  • 提问者 _不名_ #2
    我看明白了 多次用到一个string的时候再说呀 况且对于这个practice来说无论怎么放 字符串改了都要修改啊 这个观点不能说服我
    2019-02-12 13:20:21
  • 好帮手慕夭夭 回复 提问者 _不名_ #3
    你好同学 , 在实际开发时 , 情况会有很多. 所以具体情况都有具体分析 . 在本练习题中 , 可能同学的简化会让代码看上起很简洁 .但是老师举的一种情况只是要告诉同学 , 并不是代码就越简洁就用好 ,要从多方面去考虑哦
    2019-02-12 13:44:52
提问者 _不名_ 2019-02-12 03:54:15

我能写的最漂亮的了

var count = 0;
"JavaScript 是属于网络的脚本语言!JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。JavaScript 是因特网上最流行的脚本语言。JavaScript很容易使用!你一定会喜欢它的!".replace(/JavaScript/g, ($0, $1) => document.write(`JavaScript第${++count}次出现是在${$1}的位置<br/>`));
document.write(`JavaScript在这段话中出现了${count}次`);


提问者 _不名_ 2019-02-12 03:39:43

希望有比这更加漂亮的实现

var count = 0;
"JavaScript 是属于网络的脚本语言!JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。JavaScript 是因特网上最流行的脚本语言。JavaScript很容易使用!你一定会喜欢它的!"
    .replace(/JavaScript/g, ($0, $1) => {
        document.write(`JavaScript第${++count}次出现是在${$1}的位置<br/>`);
        return $0;
    });

document.write(`JavaScript在这段话中出现了${count}次`);


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

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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