js—浅谈方法和思路的重要性

  学了这么久的js,我从老师的,同学的代码中发现,老师写的代码比我们的要清楚的很多,基本上没有太多累赘啊,能少的没有少啊等等。。。。。

  废话不多说,下面我们来看看这个我的一个练习:

    将var a=['a','a','b','a','b','b','c','c','a','b','c','a','a','a','c','a','a','d','d','d','d','a','c'];中的字串出现的次数以json格式输出json{a:1,b:2,c:2}

  

 var a=['a','a','a','b','b','c','c','c','c','a','b','c'];
var josn={a:0,b:0,c:0};//直接声明json 存储次数
a.forEach(function(val,index){//遍历数组
if(val=="a"){ //判断值
josn.a ++; //将这个字串的次数累加 下同
}else if(val=="b"){
josn.b ++;
}else if(val=="c"){
josn.c ++;
}
});
console.log(josn); //打印json

上面的就是我自己敲的,相信大家都看出来了。‘嗯。。。代码很好没有问题,很符合题意’╮(╯_╰)╭

来下面看看老司机的代码

     var a = ['a','a','a','b','b','c','c','c','c','d','hha','niha'];
var s = '';
var json = {};// 声明数组,json,字符串
a.forEach(function(val,index){//遍历数组
if(s!=val){ //第一步将不同的字串提取出来
s = val;
}
json[s]?json[s]++:(json[s]=1);//判断该json有没有该值,如果有该键名则将次数+1;没有则存储起来并将键值赋值为1
})
console.log(json)

当时我看了觉得老司机不愧为老司机,小子甘拜下风。相信大家都看出来了,我自己写了代码相比之下似乎繁琐了许多,而且还有一定的局限性,就只能添加我所写的那些,若是数据一旦多了相比就是相形见绌了,可见思路和方法是有多么的重要。

古人云:学而不思则罔,思而不学则殆;学而时习之,不亦乐乎。因此,学习贵在思考和反复地温习。一味盲目的死学,是永远也得不到进步和提高的,唯一能够的得到的是在原地停滞不前,甚至倒退。思考者会积极的活在自己用心创造的美好世界,而懒惰者只会活在别人所创造出来的世界里,局限于他人所描述的时间和空间里停止不前。勤于思考的人,不会在书海中迷路,能在浩瀚的书海中寻找读书的乐趣和方法,而乐此不彼;知识的海洋是无穷无尽的,而人的记忆量总是有限的,它会随着时间的逝去而逐渐忘记以往的知识。只有“学而时习之”,温故才会知新。学习是一件很快乐的事。我们应该学着去享受它,而不应该处处排挤它。你对学习是怎么样的态度,那么学习对你也就是什么样的态度。

来自一名前端小菜的自诉(第一次不喜勿喷,欢迎大家给意见)

js—浅谈方法和思路的重要性(首篇求大佬支持)的更多相关文章

  1. salesforce lightning零基础学习(十) Aura Js 浅谈三: $A、Action、Util篇

    前两篇分别介绍了Component类以及Event类,此篇将会说一下 $A , Action以及 Util.  一. Action Action类通常用于和apex后台交互,设置参数,调用后台以及对结 ...

  2. 浅谈.Net异步编程的前世今生----APM篇

    前言 在.Net程序开发过程中,我们经常会遇到如下场景: 编写WinForm程序客户端,需要查询数据库获取数据,于是我们根据需求写好了代码后,点击查询,发现界面卡死,无法响应.经过调试,发现查询数据库 ...

  3. 浅谈.Net异步编程的前世今生----EAP篇

    前言 在上一篇博文中,我们提到了APM模型实现异步编程的模式,通过使用APM模型,可以简化.Net中编写异步程序的方式,但APM模型本身依然存在一些缺点,如无法得知操作进度,不能取消异步操作等. 针对 ...

  4. salesforce lightning零基础学习(八) Aura Js 浅谈一: Component篇

    我们在开发lightning的时候,常常会在controller.js中写 component.get('v.label'), component.set('v.label','xxValue'); ...

  5. salesforce lightning零基础学习(九) Aura Js 浅谈二: Event篇

    上一篇介绍了Aura Framework中 Component类的部分方法,本篇将要介绍Event常用的方法. 1. setParam (String key , Object value):设置事件 ...

  6. Angular.js浅谈

    至今博主对于MVVM框架比较了解的就只能算有Angular了,首先给大家明确一个概念,Angular1.x才能叫Angular.js,而Angular2.4.5都直接叫Angular了,因为从2开始已 ...

  7. node.js浅谈

    相信大家对node.js也很不陌生吧,现在我来总结一下常用的吧~ 我们Web全栈工程师最多的就是用Node作为后台了,Node.js虽然可以作为后台语言,但是相对于Java那些老牌后台语言真是一点优势 ...

  8. JS浅谈原始值与引用值操作

    值的操作分为三大类:复制,传递,比较 一:复制 原始值 let a = 10; let b = a; 注释:2018-7-30 17:33:49 1 原始类型的值都是存放在栈内存当中,所以他们的赋值操 ...

  9. JS 浅谈函数柯里化,不明觉厉

    在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术.这个技术由 Christopher ...

随机推荐

  1. form表单的enctype

    form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x- www-form-urlencoded".这 ...

  2. Web性能优化工具WebPageTest(二)——性能数据

    在前一篇<配置>完成后,点击“START TEST”,就可以开始测试,测试需要一段时间. 有时候可能还要排队,如下图所示,测试完成后可查看到测试结果. 一.Summary 1)优化等级 优 ...

  3. Sql日期时间格式转换大全

    简介:我们经常会用到sql日期转换,这里列出了日期输出为字符串的所有代码 输出格式 2014-06-12 ), ) 输出格式 2014-06-12 22:31:18 ), ) 以下是各种转换日期代码号 ...

  4. html的常用基础应用

    HTML结构   如下一段最简单的HTML代码:<html>     <head>          <title>HTML页面</title>     ...

  5. 网站启用gzip压缩

    gzip压缩启用不启用还是要看实际情况的,启用gzip后可以相应的减轻带宽压力但是同时也会增加cpu的压力(压缩解压),相反的如果不启用那么cpu压力也会相应的减少,具体情况具体分析. Linux开启 ...

  6. java面试题(二)

    21.描述一下JVM加载class文件的原理机制? 答:JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java中的类加载器是一个重要的Java运行时系统组件,它负责在运行时 ...

  7. C#小知识点记录,对象的深拷贝

    在CSDN中的定义是: public static string CompareExchange( ref string location1, string value, string compara ...

  8. 日期时间插件flatpickr.js使用方法

    今天写代码时需要用一款插件来实现对input输入时间的格式控制,找到了两款功能合适而且比较美观的插件:基于Bootstrap的DateTimePicker.js和flatpickr.js插件.一开始先 ...

  9. Python-3------新年考试周的Python学习

    2016一开始就是考试周,准备专业课的考试复习.每天上午复习,晚上复习到8点半,之后到10点这点时间来看Python.庆幸没有在忙碌的时候荒废 Python的学习. 期待寒假,以前寒假在家总是没事做, ...

  10. hibernate 插入数据时让数据库默认值生效

    用hibernate做数据库插入操作时,在数据库端已经设置了对应列的默认值,但插入的数据一直为null.查找资料发现,原来是hibernate的配置项在作怪. Hibernate允许我们在映射文件里控 ...