学习javaScript数据结构与算法

数组

创建数组

var members = [0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, 10]

添加元素

向数组末尾添加:members.push(11)

向数组开头添加:members.unshift(-1)

删除元素

从数组末尾删除:members.pop()

从数组开头删除:members.shift()

tips:通过push 和 pop,就能用数组来模拟栈; 通过unshift 和  shift, 就能用数组来模拟队列

在数组中的任意位置添加或者删除元素

使用splice,通过指定位置/索引,来删除对应位置和数量的元素

members.splice(5, 3) 【删除从数组索引5开始的3个元素】

eg.[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, 10, 11]  =》 [-1, 0, 1, 2, 3, 7, 8 , 9, 10, 11]

members.splice(5, 0, 4, 5, 6) 【插入从数组索引5开始,删除0个元素,插入4,5,6 元素】

eg. [-1, 0, 1, 2, 3, 7, 8 , 9, 10, 11]  =》 [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, 10, 11]

tips: 这里splice方法接收的三个参数,第一个是插入或者删除开始位置的索引,第二个是删除元素的个数,第三个是添加到数组里的元素的值

数组还有更多核心方法

concat 链接两个或者更多数组

every 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true

some 对数组中的每一项运行给定的函数,如果任一项返回true,则返回true

filter 对数组中的每一项运行给定函数,返回该函数会返回true的元素组成的数组

map 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组

forEach 对数组中的每一项运行给定函数,没有返回值

indexOf 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1

lastIndexOf 返回在数组中搜索到的与给定参数相等的元素的索引中最大的值【其实就是从数组末尾开始查找到的第一个匹配的索引】

reverse 颠倒数组中元素的顺序

sort 按照字母顺序对数组进行排序,支持传入指定排序方法的函数作为参数

slice 传入索引值,将数组里对应索引范围内的元素作为新数组返回

join 将数组元素通过某个字符链接成字符串

toString 将数组作为字符串返回

valueOf 和toString类似,将数组作为字符串返回(toString返回对象的字符串表示,valueOf返回对象的字符串、数值或布尔值表示)

 reduce 接收一个函数作为参数,这个函数有四个参数,previousValue,currentValue, index, array,这个函数会返回一个将被叠加到累加器的值,reduce方法停止执行后会返回这个累加器【如果需要对一个数组所有元素求和,这个方法就很有用】

后进先出

队列

先进先出

链表

链表相对数组最重要的优点就是无需移动链表中的元素就可轻松添加和移除元素,因此当你需要添加和移除很多元素时,最好的选择就是链表,而非数组。

集合

概念:由一组无序且唯一的项组成。

存储形式:set:[值,值] 对

字典和散列表

存储形式:map:[键,值] 对

HasTable类,也叫HashMap类,是Dictionary类的一种散列实现方式。

散列算法的作用是尽可能快的在数据结构中找到一个值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值