集合对象
可索引的集合对象
可索引的集合对象表示按照索引值来排序的数据集合,包括数组
和类数组
,以及类数组结构的对象
。
使用键的集合对象
使用键的集合对象在存储数据时会使用到键,包括可迭代的 Map
和 Set
等,支持按照插入顺序来迭代元素。
集合对象对比
js
////// 集合对象对比
集合对象 声明 添加 删除 遍历 获取 判断
Array new Array() push(任何值)/unshift(任何值) pop()/shift() forEach() [index] includes(fn)
Set new Set() add(任何值) delete(任何值)/clear() forEach() 无 has(任何值)
WeakSet new WeakSet() add(任何值) delete(任何值) forEach() 无 has(任何值)
Map new Map() set(任何值, 任何值) delete(任何值)/clear() forEach() get(key) has(任何值)
WeakMap new WeakMap() set(任何值, 任何值) delete(任何值) forEach() get(key) has(任何值)
////// Array
Array: length
Array.prototype[@@iterator]()
Array.prototype.at()
Array.prototype.concat()
Array.prototype.copyWithin()
Array.prototype.entries()
Array.prototype.every()
Array.prototype.fill()
Array.prototype.filter()
Array.prototype.find()
Array.prototype.findIndex()
Array.prototype.findLast()
Array.prototype.findLastIndex()
Array.prototype.flat()
Array.prototype.flatMap()
Array.prototype.forEach()
Array.from()
Array.fromAsync()
Array.prototype.includes()
Array.prototype.indexOf()
Array.isArray()
Array.prototype.join()
Array.prototype.keys()
Array.prototype.lastIndexOf()
Array.prototype.map()
Array.of()
Array.prototype.pop()
Array.prototype.push()
Array.prototype.reduce()
Array.prototype.reduceRight()
Array.prototype.reverse()
Array.prototype.shift()
Array.prototype.slice()
Array.prototype.some()
Array.prototype.sort()
Array.prototype.splice()
Array.prototype.toLocaleString()
Array.prototype.toReversed()
Array.prototype.toSorted()
Array.prototype.toSpliced()
Array.prototype.toString()
Array.prototype.unshift()
Array.prototype.values()
Array.prototype.with()
////// Set
Set.prototype.size
Set.prototype[@@iterator]()
Set.prototype.add()
Set.prototype.clear()
Set.prototype.delete()
Set.prototype.entries()
Set.prototype.forEach()
Set.prototype.has()
Set.prototype.keys()
Set.prototype.values()
////// WeakSet
WeakSet.prototype.add()
WeakSet.prototype.delete()
WeakSet.prototype.has()
////// Map
Map.prototype.size
Map.prototype[@@iterator]()
Map.prototype.clear()
Map.prototype.delete()
Map.prototype.entries()
Map.prototype.forEach()
Map.prototype.get()
Map.groupBy()
Map.prototype.has()
Map.prototype.keys()
Map.prototype.set()
Map.prototype.values()
////// WeakMap
WeakMap.prototype.delete()
WeakMap.prototype.get()
WeakMap.prototype.has()
WeakMap.prototype.set()
////// 集合对象对比
集合对象 声明 添加 删除 遍历 获取 判断
Array new Array() push(任何值)/unshift(任何值) pop()/shift() forEach() [index] includes(fn)
Set new Set() add(任何值) delete(任何值)/clear() forEach() 无 has(任何值)
WeakSet new WeakSet() add(任何值) delete(任何值) forEach() 无 has(任何值)
Map new Map() set(任何值, 任何值) delete(任何值)/clear() forEach() get(key) has(任何值)
WeakMap new WeakMap() set(任何值, 任何值) delete(任何值) forEach() get(key) has(任何值)
////// Array
Array: length
Array.prototype[@@iterator]()
Array.prototype.at()
Array.prototype.concat()
Array.prototype.copyWithin()
Array.prototype.entries()
Array.prototype.every()
Array.prototype.fill()
Array.prototype.filter()
Array.prototype.find()
Array.prototype.findIndex()
Array.prototype.findLast()
Array.prototype.findLastIndex()
Array.prototype.flat()
Array.prototype.flatMap()
Array.prototype.forEach()
Array.from()
Array.fromAsync()
Array.prototype.includes()
Array.prototype.indexOf()
Array.isArray()
Array.prototype.join()
Array.prototype.keys()
Array.prototype.lastIndexOf()
Array.prototype.map()
Array.of()
Array.prototype.pop()
Array.prototype.push()
Array.prototype.reduce()
Array.prototype.reduceRight()
Array.prototype.reverse()
Array.prototype.shift()
Array.prototype.slice()
Array.prototype.some()
Array.prototype.sort()
Array.prototype.splice()
Array.prototype.toLocaleString()
Array.prototype.toReversed()
Array.prototype.toSorted()
Array.prototype.toSpliced()
Array.prototype.toString()
Array.prototype.unshift()
Array.prototype.values()
Array.prototype.with()
////// Set
Set.prototype.size
Set.prototype[@@iterator]()
Set.prototype.add()
Set.prototype.clear()
Set.prototype.delete()
Set.prototype.entries()
Set.prototype.forEach()
Set.prototype.has()
Set.prototype.keys()
Set.prototype.values()
////// WeakSet
WeakSet.prototype.add()
WeakSet.prototype.delete()
WeakSet.prototype.has()
////// Map
Map.prototype.size
Map.prototype[@@iterator]()
Map.prototype.clear()
Map.prototype.delete()
Map.prototype.entries()
Map.prototype.forEach()
Map.prototype.get()
Map.groupBy()
Map.prototype.has()
Map.prototype.keys()
Map.prototype.set()
Map.prototype.values()
////// WeakMap
WeakMap.prototype.delete()
WeakMap.prototype.get()
WeakMap.prototype.has()
WeakMap.prototype.set()
Map 强引用对比 WeakMap 弱引用
弱引用
:ES6 新引入 WeakSet 和 WeakMap 两种弱引用类型,弱引用的特点是不管内存是否足够,只要发生 GC,都会被回收。
强引用
:在 JS 中,如果将一个引用通过变量或常量保存时,那么这个变量或常量就是强引用。
- Map 对象的键可以是任何类型,但 WeakMap 对象中的键只能是对象引用;
- WeakMap 不能包含无引用的对象,否则会被自动清除出集合(垃圾回收机制);
- WeakMap 对象是不可枚举的,无法获取集合的大小。