
2024-11-16 日报 Day8

今日的鸡汤
心存希冀,目有繁星;
追光而遇,沐光而行。
今日学习内容
1、《JavaScript数据结构与算法》 P54-78
今日笔记
1、数据方法:
方法名 | 描述 |
---|---|
concat | 连接2个或更多数组,并返回结果 |
every | 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true |
filter | 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组 |
forEach | 对数组中的每一项运行给定函数。这个方法没有返回值 |
join | 将所有的数组元素连接成一个字符串 |
indexOf | 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1 |
lastIndexOf | 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值 |
map | 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组 |
reverse | 颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在 的第一个 |
slice | 传入索引值,将数组里对应索引范围内的元素作为新数组返回 |
some | 对数组中的每一项运行给定函数,如果任一项返回true,则返回true |
sort | 按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数 |
toString | 将数组作为字符串返回 |
valueOf | 和toString类似,将数组作为字符串返回 |
reduce | array.reduce(callback, initialValue) callback接收四个参数 。accumulator:累加器,保存回调函数的返回值,并将其在下一次迭代中传递。currentValue:当前处理的数组元素。currentIndex:当前元素的索引(可选)。array:调用 reduce 的数组本身(可选)。 |
2、栈
栈实现
最简单的: 存在的缺点 希望Stack类的用户只能访问暴露给类的方法。否则,就有 可能从栈的中间移除元素(因为我们用数组来存储其值),这不是我们希望看到的。
1 | class Stack { |
用ES6的限定作用域Symbol实现
1 | let _items = Symbol(); |
虽然创建了一个symbol属性 但是依然可以获取到数组
用ES6的WeakMap
1 | const items = new WeakMap(); //{1} |
数据结构总结
栈: 例子(书堆) 先进后出(LIFO)
方法包含: push、pop、peek、isEmpty、getSize、clear
应用: 回溯问题中,它可以存储访问过的任务或路径、撤销的操作(后
面的章节讨论图和回溯问题时,