在 ECMAScript 2019 中,set 和 map 对象是新的数据类型。它们可以用来存储一组唯一的值和键值对。这篇文章将详细介绍 set 和 map 对象,包括其用法、方法和实例。
Set 对象
set 对象是一种无序的集合,其中每个值只能出现一次。它可以用来存储一组唯一的值,例如:
let set = new Set(); set.add(1); set.add(2); set.add(3); set.add(3); // 重复的值不会被添加 console.log(set); // Set {1, 2, 3}
Set 对象方法
set 对象有以下方法:
add(value)
:添加一个值到 set 对象中。clear()
:清空 set 对象中的所有值。delete(value)
:从 set 对象中删除一个值。has(value)
:判断 set 对象中是否包含一个值。forEach(callbackFn, thisArg)
:遍历 set 对象中的每个值,并执行回调函数。
例如:
let set = new Set([1, 2, 3]); set.forEach(function(value) { console.log(value); });
Set 对象实例
以下是使用 set 对象的实例:
- 使用 set 对象存储一组唯一的值,并返回这组值的长度。
function unique(arr) { let set = new Set(arr); return set.size; } let arr = [1, 2, 3, 2, 1]; console.log(unique(arr)); // 3
- 判断两个数组是否有重复的值。
-- -------------------- ---- ------- -------- ------------------ ----- - --- ---- - --- ---------- --- ---- - --- ---------- --- ---- ----- -- ----- - -- ----------------- - ------ ----- - - ------ ------ - --- ---- - --- -- --- --- ---- - --- -- --- ------------------------------ ------- -- ----
Map 对象
map 对象是一种键值对的集合,其中每个键只能出现一次。它可以用来存储一组唯一的键值对,例如:
let map = new Map(); map.set('name', 'John'); map.set('age', 30); console.log(map); // Map { 'name' => 'John', 'age' => 30 }
Map 对象方法
map 对象有以下方法:
set(key, value)
:向 map 对象中添加一个键值对。get(key)
:获取 map 对象中指定键对应的值。has(key)
:判断 map 对象中是否包含指定的键。delete(key)
:从 map 对象中删除指定的键值对。clear()
:清空 map 对象中的所有键值对。forEach(callbackFn, thisArg)
:遍历 map 对象中的每个键值对,并执行回调函数。
例如:
let map = new Map([['name', 'John'], ['age', 30]]); map.forEach(function(value, key) { console.log(key + ' = ' + value); });
Map 对象实例
以下是使用 map 对象的实例:
- 使用 map 对象存储一组键值对,并返回这组键值对的长度。
-- -------------------- ---- ------- -------- --------------- - --- ----- - ----------- --- --- --- - --- ------ --- ---- ---- -- ------ - -- --------------- - ------------- ------------- - --- - ---- - ------------- --- - - ------ --------- - --- --- - ------ ----- ------- ----------------------------- -- -
- 将一个数组转换成键值对的形式。
-- -------------------- ---- ------- -------- --------------- - --- --- - --- ------ --- ---- - - -- - - ----------- - -- -- - --------------- ----- - ---- - ------ ---- - --- --- - -------- ------- ------ ---- ----------------------------- -- --- - ------ -- ------- ----- -- -- -
总结
set 和 map 对象是 ECMAScript 2019 中的新数据类型,它们可以用来存储一组唯一的值和键值对。set 对象是一种无序的集合,其中每个值只能出现一次;map 对象是一种键值对的集合,其中每个键只能出现一次。set 和 map 对象都有一些方法,例如添加、删除、遍历等。它们可以用来解决一些常见的问题,例如去重、计数、转换等。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6560897ed2f5e1655dabba1b