跳至主要內容
javascript Array方法总结

阅读提示: 每个方法都有相应的描述、语法、参数、返回值、注意项(可选)、例子(可选)。 语法中的[]里面中的内容表示参数为可选参数。

Array.from()

描述:从一个类似数组或可迭代对象中创建一个新的数组实例。

语法

new_array = Array.from(arrayLike[, callback(element[, index[, array]])[, thisArg]]);

fxss原创大约 23 分钟javascriptArray
javascript

javascript 好文

  1. 75个JavaScript面试题集锦,内含解答,自测 JS 掌握程度
  2. 为什么说for...of循环是JS中的宝石?
  3. 【建议星星】要就来45道Promise面试题一次爽到底(1.1w字用心整理)
  4. 20行实现一个Promise
  5. 你可能不知道的JS开发技巧
  6. 木易杨前端进阶
  7. 127个常用的JS代码片段,每段代码花30秒就能看懂(上)
  8. 127个常用的JS代码片段,每段代码花30秒就能看懂(中)
  9. 127个常用的JS代码片段,每段代码花30秒就能看懂(下)

fxss小于 1 分钟javascript
使用 js 实现 字典

字典是一种以 键值对 形式存数数据的数据结构,javaScript 中的 Object 类就是以字典的形式设置的,所以使用 Object 类本身的特性实现字典 Dictionary 类。

属性及方法

列表 属性或方法 描述
add 方法 add(key, value) 向字典中添加 键值对
find 方法 find(key) 从字典中查找 key 键对应的值,找不到则返回 undefined
remove 方法 remove(key) 从字典中删除 key
getKeys 方法 getKeys() 获取字典中的所有 key
getKeysSort 方法 getKeysSort() 获取字典中的所有 key,并使用 sort 排序
count 方法 count() 返回字典中 键值对 的个数
showAll 方法 showAll() 将字典中的所有 键值对 转换为字符串,以 , 分隔
showAllSort 方法 showAllSort() 将字典中的所有键按照 sort 排序,之后将所有 键值对 转换为字符串,以 , 分隔
clear 方法 clear() 清空字典

fxss原创大约 2 分钟javascript
使用 js 实现 链表

链表是由一组节点组成的集合。

单向链表

每个节点都使用一个对象的引用指向它的后驱,指向另一个节点的引用叫做链。在链表的最前面有一个特殊节点,叫做头节点。

单向链表插入

向链表中插入一个节点,需要修改它前面节点(前驱)的链,使其指向新加入的节点,新加入的节点的链指向原来前驱指向的节点。

单向链表删除

从链表中删除一个节点,将待删除节点的前驱节点的链指向待删除节点的后驱节点,同时将待删除节点的链指向 null

单向链表属性及方法

列表 属性或方法 描述
find 方法 find(item) 从链表头节点向后查找某个节点,查找到节点则返回对应节点,查找不到则返回 null
findPrev 方法 findPrev(item) 从链表头节点向后查找某个节点的后驱为 item,查找到节点则返回对应节点,查找不到则返回 null
insert 方法 insert(newElement, item) 向链表中的 item 节点之后插入 newElement 节点,成功返回 true ,失败返回 false
remove 方法 remove(item) 从链表中删除 item 节点,成功返回 true ,失败返回 false
display 方法 返回链表中所有节点 element 属性组成的数组
displayString 方法 返回链表中所有节点 element 属性组成的字符串,以 , 分隔
length 方法 返回链表中节点个数
show 方法 返回链表中按顺序第 pos 个节点,从 0 开始
advance 方法 advance(number) 按照链表顺序,继续向后移动 number 个节点,最多移动到链表最后一个节点
back 方法 back(number) 按照链表顺序,反方向向前移动 number 个节点,最多移动到链表的第一个节点(非链表的头节点)

fxss原创大约 5 分钟javascript
使用 js 实现 队列

队列是一种特殊的列表,队列只能在队尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据,先进先出。

参数

接收的参数为数组类型。

属性及方法

栈的抽象数据类型定义

列表 属性或方法 描述
enqueue 方法 向队尾加入一个元素
dequeue 方法 删除队首的元素
front 方法 读取队首元素
back 方法 读取队尾元素
toString 方法 返回队列的字符串形式
clear 方法 清空队列
length 方法 返回队列内元素的个数
empty 方法 队列是否为空

fxss原创大约 2 分钟javascript
使用 js 实现 栈

栈是一种特殊的列表,栈内的元素只能通过栈顶访问,栈是一种后入先出的数据结构。

参数

接收的参数为数组类型。

属性及方法

栈的抽象数据类型定义

列表 属性或方法 描述
top 属性 记录栈顶元素的位置,同时也为了标记哪里可以加入新元素,当向栈内压入元素时,top 增大,从栈内弹出元素时,top 减小
push 方法 向栈内压入元素
pop 方法 从栈内弹出元素
peek 方法 返回栈顶元素,该元素依然存在栈内
toString 方法 返回栈的字符串形式
clear 方法 清空栈
length 方法 返回栈内元素的个数

fxss原创大约 2 分钟javascript
使用 js 实现 列表

列表是一组有序的数据,列表中的每个数据项称为元素。本篇文章中列表提供两种实现方式,一种是 ES5 构造函数,一种是 ES6 Class

参数

接收的参数为数组类型。

属性及方法

列表的抽象数据类型定义

列表 属性或方法 描述
listSize 属性 列表的元素个数
pos 属性 列表的当前位置
find 方法 在列表中查找某一元素在列表中的位置(从0开始计数),未找到则返回 -1
contains 方法 判断给定值是否在列表中,返回 true/false
length 方法 列表中元素的个数,返回值为 number
clear 方法 清空列表中的所有元素
toString 方法 返回列表的字符串形式
getElement 方法 返回当前位置的元素
insert 方法 向列表中插入一个元素, insert(element, after)element 表示要插入的元素,after 表示在 after 元素之后插入,返回 true/falsetrue 表示插入成功,false 插入失败
append 方法 在列表的末尾添加新元素,append(element)element 表示要添加的新元素
remove 方法 从列表中删除元素,remove(element)element 表示要删除的元素,,返回 true/falsetrue 表示删除成功,false 删除失败
front 方法 将列表的当前位置移动到第一个元素
end 方法 将列表的当前位置移动到最后一个元素
prev 方法 将当前位置前移一位,如果当前 pos === 0,执行 prev() 方法之后依然是 pos 为 0
next 方法 将当前位置后移一位,如果当前 pos === this.listSize - 1,执行 next() 方法之后依然是 pos 为 this.listSize - 1
hasPrev 方法 判断是否存在前一位
hasNext 方法 判断是否存在后一位
currPos 方法 返回列表的当前位置,返回 number
moveTo 方法 将当前位置移动到指定位置,在 0 ~ this.listSize -1 范围内成功移动时返回 true ,当大于 this.listSize - 1 或者小于 0 时,返回 false

fxss原创大约 3 分钟javascript
call 、apply 和 bind 的模拟实现

call

Function.prototype.myCall = function(context = window, ...args) {
  if (this === Function.prototype) {
    return undefined  // 用于防止 Function.prototype.myCall() 直接调用
  }
  context = context || window // 用于防止传入 null
  const fn = Symbol()
  context[fn] = this
  const result = context[fn](...args)
  delete context[fn]
  return result
}

fxss原创大约 1 分钟javascriptcallapplybind
2
3