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. c中的可重入和不可重入函数

    可重入和不可重入 的基本概念 ---简介--- 可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段 ...

  2. jquery 中 eq()遍历方法 和:eq()选择器的区别

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. 实现五种分组加密模式ECB,CBC,CFB,OFB,CTR

    没什么好说的,简单无脑! #include<iostream>using namespace std; int ECB(){ int duan[4]; int messageLen = 1 ...

  4. 第一个SignalR案例

    说明:开发的案例为Hub(集线器) 一.开发环境 VS2013  ,window10 二.步骤 打开vs创建一个新的解决方案,添加一个空的WebForm项目. 使用NuGet添加引用.命令:PM> ...

  5. Java中如何动态创建接口的实现

    有很多应用场景,用到了接口动态实现,下面举几个典型的应用: 1.mybatis / jpa 等orm框架,可以在接口上加注解进行开发,不需要编写实现类,运行时动态产生实现. 2.dubbo等分布式服务 ...

  6. java源码剖析: 对象内存布局、JVM锁以及优化

    一.目录 1.启蒙知识预热:CAS原理+JVM对象头内存存储结构 2.JVM中锁优化:锁粗化.锁消除.偏向锁.轻量级锁.自旋锁. 3.总结:偏向锁.轻量级锁,重量级锁的优缺点. 二.启蒙知识预热 开启 ...

  7. mongo数据库基础

    mongodb mongodb特性 分布式文件存储 介与关系数据库和非关系数据库之间 文件存储格式为BSON(一种JSON的扩展) BSON是对二进制格式的JSON的简称,BSON支持文档和数组的嵌套 ...

  8. STM32F0的flash读写

    flash大小64k Rom+8k Ram的大小,stm32f051有64k Rom,总的分为 64页,一页1024byte ,在flash的Rom里面写数据掉电保存,相当于W25q80 uint32 ...

  9. Java 工具类—日期获得,随机数,系统命令,数据类型转换

    package tems; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; ...

  10. 【2017-04-24】winform基础、登录窗口、窗口属性

    一.winform基础  客户端应用程序:C/S 客户端应用程序可以操作用户电脑中的文件,代码要在用户电脑上执行,吃用户电脑配置. 窗体是由控件和属性做出来的 控件:窗体里所放的东西."视图 ...