一说到数据结构,不少人就开始头大了,由于总感受像什么数据结构,算法之类的概念都很高大上,我知道有不少的同窗都是毕业后以为编程高薪,亦或培训速成因此就选择了一门语言,从而从事了这个行业,可是对于编程语言的一些基础,以及相关的系列知识结构实际上是缺失的,因此业余时间多花点功夫多学习,其实都是能够补上来的,拿我本身举例子吧,我学的专业虽然不是“计算机科学与技术”也不是“软件工程”这样纯计算机的专业,可是是和计算机专业相关的学科,因此上学的时候,接触过C,Java,C#等语言,也有一些数据结构的概念,数据库操做也略知一二,也系列的学过计算机网络基础等课程,虽然上学的时候学的很差也不精,但至少的思想和概念是有的,因此在此也给一些刚刚入技术,或者转行的同窗一点提示,除了本职的技术语言和繁忙的业务逻辑以外,这些基础概念仍是应该要补上来的。javascript
数据结构是一种存储和组织数据的方式java
至于我是何时有了关于“数据结构”这个概念,应该是2016的7月份起,加入了目前的公司,接触复杂的业务逻辑,处理复杂的数据,公司有专门的几十人团队的大数据部门,因此可想而知,每次处理接口返回过来的数据,再也不是之前单一结构的数据,而是相对比较复杂,设计合理的接口数据,那么这个时候你直接拿到数据,并非能够直接使用的,它须要你作二次处理以后才能用了展现或者处理逻辑用的数据程序员
举个栗子es6
好比咱们获取到了一段这样的数据,可是临时咱们须要往数据中再加一个字段,好比须要给每一项加一个“country"这个字段,所以咱们就须要将这组数据进行一个处理,数组是最简单的内存数据结构,js中以及几乎全部的语言都支持数组类型,因此学好js中的数据结构,首先要学习的就是对数组的处理算法
javascript语言一直不断的完善和更新,去年有了es6,今年又有了es7,数组中涉及的方法和API也是在不断的完善,本文不介绍es5以后的方法扩展,须要的同窗请查看相关的资料学习,先来概览一下经常使用的能够高效处理数组的方法,这些方法能够在平常工做中帮咱们处理不少简单的逻辑数据库
处理数据时经常使用的:具备遍历做用的方法编程
forEach(),map(), some()/every(), filter(),reduce()/reduceRight()方法都具备一个遍历做用,可是它们在遍历的同时还具备其特定的功能,以上这几个方法是我在处理数组数据时经常使用的方法,以前没有使用过或者使用不全的同窗能够去搜索一下它们各自的功能数组
思考?如何去除数组中重复的项网络
例如数组:[1,3,4,3,5]咱们在作去重的时候,一开始想到的确定是,逐个比较,外面一层循环,内层后一个与前一个一比较,若是是久不将当前这一项放进新的数组,挨个比较完以后返回一个新的去太重复的数组数据结构
这时候不由一想固然有了!!!hashtable 啊,经过对象的hash办法能够有效的去除掉重复的内容
例如数组是这样的:
完结
以上的小栗子,由最开始咱们的古老思想和低效方法逐步到最后数组去重复杂项,这一个个过程都体现了数组的乐趣所在,同时也体现出了数据结构的魅力之处,数组只是一种简单的数据结构,还有不少更复杂更有意识的知识等待咱们去挖掘,也但愿小伙伴能够跟我分享更多的知识和乐趣,2107年欢迎你和我一块儿作一个不断努力学习的知识分子
Cayley 一个不断努力学习的女程序员