js—浅谈方法和思路的重要性(首篇求大佬支持)
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—浅谈方法和思路的重要性(首篇求大佬支持)的更多相关文章
- salesforce lightning零基础学习(十) Aura Js 浅谈三: $A、Action、Util篇
前两篇分别介绍了Component类以及Event类,此篇将会说一下 $A , Action以及 Util. 一. Action Action类通常用于和apex后台交互,设置参数,调用后台以及对结 ...
- 浅谈.Net异步编程的前世今生----APM篇
前言 在.Net程序开发过程中,我们经常会遇到如下场景: 编写WinForm程序客户端,需要查询数据库获取数据,于是我们根据需求写好了代码后,点击查询,发现界面卡死,无法响应.经过调试,发现查询数据库 ...
- 浅谈.Net异步编程的前世今生----EAP篇
前言 在上一篇博文中,我们提到了APM模型实现异步编程的模式,通过使用APM模型,可以简化.Net中编写异步程序的方式,但APM模型本身依然存在一些缺点,如无法得知操作进度,不能取消异步操作等. 针对 ...
- salesforce lightning零基础学习(八) Aura Js 浅谈一: Component篇
我们在开发lightning的时候,常常会在controller.js中写 component.get('v.label'), component.set('v.label','xxValue'); ...
- salesforce lightning零基础学习(九) Aura Js 浅谈二: Event篇
上一篇介绍了Aura Framework中 Component类的部分方法,本篇将要介绍Event常用的方法. 1. setParam (String key , Object value):设置事件 ...
- Angular.js浅谈
至今博主对于MVVM框架比较了解的就只能算有Angular了,首先给大家明确一个概念,Angular1.x才能叫Angular.js,而Angular2.4.5都直接叫Angular了,因为从2开始已 ...
- node.js浅谈
相信大家对node.js也很不陌生吧,现在我来总结一下常用的吧~ 我们Web全栈工程师最多的就是用Node作为后台了,Node.js虽然可以作为后台语言,但是相对于Java那些老牌后台语言真是一点优势 ...
- JS浅谈原始值与引用值操作
值的操作分为三大类:复制,传递,比较 一:复制 原始值 let a = 10; let b = a; 注释:2018-7-30 17:33:49 1 原始类型的值都是存放在栈内存当中,所以他们的赋值操 ...
- JS 浅谈函数柯里化,不明觉厉
在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术.这个技术由 Christopher ...
随机推荐
- 一个只有99行代码的JS流程框架
张镇圳,腾讯Web前端高级工程师,对内部系统前端建设有多年经验,喜欢钻研捣鼓各种前端组件和框架. 最近一直在想一个问题,如何能让js代码写起来更语义化和更具有可读性. 上周末的时候突发奇想,当代码在运 ...
- Oracle数据库报错:索引中丢失 IN 或 OUT 参数
另外,我记得好像以前也有这样的错误发生,当时的错误原因是,参数类型和数据库的类型不匹配引起的. 所以,如果有这种错误发生,应该仔细检查每个字段赋值的地方,检查类型及非空. 也可能是传参数问题,传参数过 ...
- Java多线程学习笔记(二)——Executor,Executors,ExecutorService比较
Executor:是Java线程池的超级接口:提供一个execute(Runnable command)方法;我们一般用它的继承接口ExecutorService. Executors:是java.u ...
- Elasticsearch搜索之explain评分分析
Lucene的IndexSearcher提供一个explain方法,能够解释Document的Score是怎么得来的,具体每一部分的得分都可以详细地打印出来.这里用一个中文实例来纯手工验算一遍Luce ...
- GitHub上最受欢迎的iOS开源项目TOP20
AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是GitH ...
- Redis编码问题
最近搞redis存储对象出了点问题,大概说一下背景,项目原有的东东以前存的是redis,存储的直接是对象模型,没有问题,这里存储对象存储任何信息事都没有问题的.但是现在调整为存储序列化的json字符串 ...
- 厉害了我的雅虎!卖掉主业后更名为阿里他爸(Altaba)
据雅虎周一向美国证券交易委员会(SEC)提交的文件显示,在美国通信巨头Verizon斥资48亿美元收购雅虎的交易完成后,该公司首席执行官玛丽莎o梅耶尔(Marissa Mayer)将退出公司董事会. ...
- CodeSmith生成实体的分页读取规则
首先.我得向咱们博客园提个意见,能不能我写的东西就给预保存下呢?刚才我写半天,只因为这个不给力的IE浏览器死了,导致我白写了,如果这要是那个大神直接在这上面写的非常有技术含量的贴着会因此而丢失实在是有 ...
- [原创] 绿色单文件封装程序GreenOne V3.0
1.原理 将包含可执行文件的多个文件 调用Winrar,创建自解压格式压缩文件 设置高级自解压选项中的文本和图标,设置解压后运行的文件为选中的可执行文件. 这种创建单文件封装其实也就是一个Winrar ...
- Vue项目的部署
通过vue-cli创建的工程,默认已经打好了基础,包含vue-loader webpack. 通常我们开发中,使用npm run dev进行开发,webpack会Hot reload,不用我们手动刷新 ...