es6中的Map和Set数据结构

Map

Map对象可以用于保存键值对

1.创建 一个Map对象

const map = new Map()

2.Map的一些方法

  • set(key,value):通过键值对向Map对象中添加元素
  • get(key):通过建拿到对应的值
  • size:返回Map对象中所包含的键值对的个数
  • has(key):判断Map对象中是否有对应的key,返回一个布尔值
  • delete(key):删除对应的键值数据,返回一个布尔值,表示 是否删除成功
  • clear():删除对象中所有的元素
map.set('one', 1)
map.set('two', '2')
map.set(1, '3')
console.log(map.get('one')); // 1
console.log(map.size);  // 3
console.log(map.has('one')); // true
console.log(map.has('three')); // false
console.log(map.delete('one')); // true
console.log(map.size); // 2
map.clear()
console.log(map.size); // 0

3.遍历map的方法

  • keys():返回键名
  • values():返回值
  • entties():返回键值对,键值对为数组形式
  • forEach(value,key,map):遍历每个成员
// 1. keys
for (let key of map.keys()) {
  console.log(key); // one tow 1
}
console.log('=========');
// 2. values
for (let val of map.values()) {
  console.log(val); // 1 2 3
}
console.log('=========');
// 3. entries
for (let all of map.entries()) {
  console.log(all); // ['one',1] ['two',2] [1,3]
}
console.log('=========');
// 4. forEach
map.forEach((val, key, map) => {
  console.log(val); // 1 2 3
  console.log(key); // one two 3
})

Set

Set中只有value,且不允许值重复。Set中的键值一样 

1.创建一个Set实例

const set = new Set()

2.Set的方法

  • add(val):添加某个值,返回Set结构本身,支持链式调用
  • size:返回Set实例的成员总数
  • has(val):判断Set中是有val值
  • delete(val):删除某个值,返回一个布尔值,表示是否删除成功
  • clear():清楚所有成员,无返回值
set.add(1).add(2).add(3)
console.log(set); // {1,2,3}
console.log(set.size); // 3
console.log(set.has(1)); // true
console.log(set.has(4)); // false
console.log(set.delete(1)); // true
console.log(set.delete(4)); // false
console.log(set.size); // 2
set.clear()
console.log(set.size); // 0

3.遍历Set

此处方法和上面遍历Map的方法是一样的,需要注意的是,set中的键和值是一样的。

/**
 * 遍历set
 */
// 1. keys
for (let key of set.keys()) {
  console.log(key); // 1 2 3
}
console.log('=========');
// 2. values
for (let val of set.values()) {
  console.log(val); // 1 2 3
}
console.log('=========');
// 3. entries
for (let all of set.entries()) {
  console.log(all); // [1,1] [2,2] [3,3]
}
console.log('=========');
// 4. forEach
set.forEach((val, key, set) => {
  console.log(val); // 1 2 3
  console.log(key); // 1 2 3
})

今日寄语:只有拼尽全力,才能轻而易举!

你可能感兴趣的:(JavaScript,es6,前端,ecmascript)