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. POI框架实现创建Excel表、添加数据、读取数据

    public class TestPOI2Excel {//创建2003版本Excel用此方法 @Test public void testWrite03Excel() throws Exceptio ...

  2. MySql字符串函数使用技巧

    1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my_con ...

  3. iptables配置详解

    iptables主要参数 -A 向规则链中添加一条规则,默认被添加到末尾 -T指定要操作的表,默认是filter -D从规则链中删除规则,可以指定序号或者匹配的规则来删除 -R进行规则替换 -I插入一 ...

  4. Ajax 与 Comet

    Ajax技术的核心是XMLHttpRequest对象(简称XHR). XMLHttpRequest对象 在浏览器中创建XHR对象要像下面这样,使用XMLHttpRequest构造函数. var xhr ...

  5. 【转】JDBC学习笔记(3)——复习和练习

    转自:http://www.cnblogs.com/ysw-go/ 复习部分 一.获取数据库连接 1)方式一 1 // 获取数据库连接 2 @Test 3 public void testGetCon ...

  6. CentOS 'mysql/mysql.h': No such file or directory

    需要安装mysql-devel # yum install mysql-devel

  7. laytpl--前端数据绑定

    发现一枚前端数据绑定导弹:laytpl,官网:http://www.layui.com/laytpl/ 为了不用angularJS等较为重量级的,和繁琐的配置,所以就用了laytpl,可以配合JQ使用 ...

  8. WebView加载页面的两种方式——网络页面和本地页面

    WebView加载页面的两种方式 一.加载网络页面 加载网络页面,是最简单的一种方式,只需要传入http的URL就可以,实现WebView加载网络页面 代码如下图: 二.加载本地页面 1.加载asse ...

  9. C#集合之字典

    字典表示一种复杂的数据结构,这种数据结构允许按照某个键来访问元素.字典也称为映射或散列表. 字典的主要特性是能根据键快速查找值.也可以自由添加和删除元素,这有点像List<T>(http: ...

  10. spring security 配置多个AuthenticationProvider

    前言 发现很少关于spring security的文章,基本都是入门级的,配个UserServiceDetails或者配个路由控制就完事了,而且很多还是xml配置,国内通病...so,本文里的配置都是 ...