es6中的新增的Set与Map数据类型介绍

ES2015-Set

  • 你可以把set理解为集合,它和传统的js数组类似,但是它里面的元素都是唯一的不重复的。它可以像array那样通过forEach或者for of的方法去遍历
//new一个Set实例
const s = new Set()
//通过add来往set中添加数据
s.add(1).add(2).add(3).add(4).add(2)
s.size//获取set的长度
s.has(100//判断set中有没有某个元素
s.delete(3)//删除set中的元素
s.clear()//清空set中的数据
  • set最常用的途径还是实现数组去重
const arr = [1, 2, 1, 3, 4, 1]

//通过Array.from把处理过后set类型转换为数组类型
const result = Array.from(new Set(arr))
//或者通过...操作符将set里面的元素获取到直接放到[]中
const result = [...new Set(arr)]

ES2015-Map

  • 在传统的对象中,键值key只能是字符串,添加其他类型的key会被转换成字符串
//map数据结构
const obj = {
     }
obj[true] = 'value'
obj[123] = 'value'
obj[{
      a: 1 }] = 'value'

console.log(Object.keys(obj))
//['true','123','[object Object]']
  • Map中的键值key可以为任意类型,这是它与对象最大的不同。而map同样可以使用forEach方法去遍历
const tom = {
      name: 'tom' }

//set方法去设置map中的键值
m.set(tom, 90)

//get方法去获取map中的key的值
console.log(m.get(tom))

// m.has() 判断某个键是否存在
// m.delete() 删除某个键的值
// m.clear() 清除map中的数据
//...

你可能感兴趣的:(JavaScript,javascript,es6)