JS数据结构
Array.prototype.unshift 原理
在数组开头插入元素
Array.prototype.insertFirstPosition = function(value) {
for (let i = this.length; i >= 0; i--) {
this[i] = this[i - 1];
}
this[0] = value;
};
数组核心方法
方 法| 描 述
- | -
concat | 连接 2 个或更多数组,并返回结果
every | 对数组中的每个元素运行给定函数,如果该函数对每个元素都返回 true,则返回 true
filter | 对数组中的每个元素运行给定函数,返回该函数会返回 true 的元素组成的数组
forEach | 对数组中的每个元素运行给定函数。这个方法没有返回值
join | 将所有的数组元素连接成一个字符串
indexOf | 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1
lastIndexOf | 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值
map | 对数组中的每个元素运行给定函数,返回每次函数调用的结果组成的数组
reverse | 颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在的第一个
slice | 传入索引值,将数组里对应索引范围内的元素作为新数组返回
some | 对数组中的每个元素运行给定函数,如果任一元素返回 true,则返回 true
sort | 按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数
toString | 将数组作为字符串返回
valueOf | 和 toString 类似,将数组作为字符串返回
map,filter,reduce 构成JS函数式编程基础
ES2015和ES2016新增
方 法 | 描 述
- | -
@@iterator | 返回一个包含数组键值对的迭代器对象,可以通过同步调用得到数组元素的键值对
copyWithin | 复制数组中一系列元素到同一数组指定的起始位置
entries | 返回包含数组所有键值对的@@iterator
includes | 如果数组中存在某个元素则返回 true,否则返回 false。E2016 新增
find | 根据回调函数给定的条件从数组中查找元素,如果找到则返回该元素
findIndex | 根据回调函数给定的条件从数组中查找元素,如果找到则返回该元素在数组中的索引
fill | 用静态值填充数组
from | 根据已有数组创建一个新数组
keys | 返回包含数组所有索引的@@iterator
of | 根据传入的参数创建一个新数组
values | 返回包含数组中所有值的@@iterator
其中,@@iterator与Symbol.iterator关联,使用示例:
let iterator = numbers[Symbol.iterator]();
console.log(iterator.next().value); // 1
console.log(iterator.next().value); // 2
console.log(iterator.next().value); // 3
| 类型数组 | 数据类型 |
|---|---|
| Int8Array | 8 位二进制补码整数 |
| Uint8Array | 8 位无符号整数 |
| Uint8ClampedArray | 8 位无符号整数 |
| Int16Array | 16 位二进制补码整数 |
| Uint16Array | 16 位无符号整数 |
| Int32Array | 32 位二进制补码整数 |
| Uint32Array | 32 位无符号整数 |
| Float32Array | 32 位 IEEE 浮点数 |
| Float64Array 64 位 IEEE 浮点数 |

浙公网安备 33010602011771号