We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Set在其他语言中又叫做集合,是由一堆无序的、相关联的,且不重复的内存结构组成的组合。
根据定义可以得出几个关键点:
size: 返回集合中所包含的元素的数量
add(value): 向集合中添加一个新的项
delete(value): 从集合中删除一个值
has(value): 如果值在集合中存在,返回ture, 否则返回false
clear(): 移除集合中的所有项
keys(): 返回键名的遍历器
values(): 返回键值的遍历器 (由于 Set 没有键名只有键值,所有 keys 和 values 效果一致)
entries(): 返回键值对的遍历器
forEach(): 使用回调函数遍历每个成员
Set 本身是一个构造函数,用来生成Set结构
const s = new Set() [1,2,3,4,4].forEach(i => s.add(i)) for(let i of s) { console.log(i) } // output: 1 2 3 4 // Set不会添加重复元素
上面代码可以看出 Set 用途之一是可以去除数组中的重复元素
Set 构造函数还可以接受一个数组(或具有 iterable 接口的其他数据结构)作为参数,用来初始化一个集合。
// 例 1 const s = new Set([1,2,3,4,5,5,4,'5']) [...s] // [1,2,3,4,5,'5'] // 注意 向 Set 中加入值的时候不会发生类型转换, Set内部用 (===) 来判断两个值是否相等 // 例 2 const m = new Map() m.set('a', 1) m.set('a', 2) const s = new Set(m) [...s] // [['a', 1], ['b', 2]] Array.from(s) // [['a', 1], ['b', 2]] Array.from方法可以将 Set 转为数组
WeakSet 结构与 Set 类似,也是不重复的值的集合
类似于对象,也是键值对的集合
与对象(Object)的区别:
size: 返回 Map 结构的元素总数
set(key, value): 向 Map 中加入或更新键值对
get(key): 读取 key 对用的值,如果没有,返回 undefined
has(key): 某个键是否在 Map 对象中,在返回 true 否则返回 false
delete(key): 删除某个键,返回 true, 如果删除失败返回 false
clear(): 删除所有元素
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回所有成员的遍历器
forEach():遍历 Map 的所有成员
const m = new Map() m.set('a', 1) m.set(1: 'a') m.get('a') // 1 m.has(1) // true m.size() // 2
const map = new Map([ ['F', 'no'], ['T', 'yes'], ]) for (let key of map.keys()) { console.log(key) } // "F" // "T" for (let value of map.values()) { console.log(value) } // "no" // "yes" for (let [key, value] of map) { console.log(key, value) } // "F" "no" // "T" "yes" [...map] // [['F', 'no'], ['T', 'yes']]
WeakMap 结构与 Map 结构类似,也是用于生成键值对的集合。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Set
定义
Set在其他语言中又叫做集合,是由一堆无序的、相关联的,且不重复的内存结构组成的组合。
根据定义可以得出几个关键点:
Set 的实例属性和方法
size: 返回集合中所包含的元素的数量
add(value): 向集合中添加一个新的项
delete(value): 从集合中删除一个值
has(value): 如果值在集合中存在,返回ture, 否则返回false
clear(): 移除集合中的所有项
keys(): 返回键名的遍历器
values(): 返回键值的遍历器 (由于 Set 没有键名只有键值,所有 keys 和 values 效果一致)
entries(): 返回键值对的遍历器
forEach(): 使用回调函数遍历每个成员
Set 的基本用法
Set 本身是一个构造函数,用来生成Set结构
上面代码可以看出 Set 用途之一是可以去除数组中的重复元素
Set 构造函数还可以接受一个数组(或具有 iterable 接口的其他数据结构)作为参数,用来初始化一个集合。
WeakSet
定义
WeakSet 结构与 Set 类似,也是不重复的值的集合
与 Set 的区别
Map
定义
类似于对象,也是键值对的集合
与对象(Object)的区别:
Map 的实例属性和方法
size: 返回 Map 结构的元素总数
set(key, value): 向 Map 中加入或更新键值对
get(key): 读取 key 对用的值,如果没有,返回 undefined
has(key): 某个键是否在 Map 对象中,在返回 true 否则返回 false
delete(key): 删除某个键,返回 true, 如果删除失败返回 false
clear(): 删除所有元素
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回所有成员的遍历器
forEach():遍历 Map 的所有成员
Map 基本用法
WeakMap
定义
WeakMap 结构与 Map 结构类似,也是用于生成键值对的集合。
WeakMap 和 Map 区别
结论
The text was updated successfully, but these errors were encountered: