ECMAScript6(二)

数据结构Set

集合的基本概念:集合是由一组无序且唯一(既不能重复)的项组成,这个数据结构使用了与有限集合相同的数据概念,应用在计算机的数据结构中。

特点:key和value相同,没有重复的value。

ES6 提供了数据结构Set,它类似于数组,但是成员的值都是唯一的,没有重复的值

1.如何创建一个Set

const s = new Set([1,2,3,4])

console.log(s)// Set(4) {1, 2, 3, 4}

2.Set类的属性

console.log(s.size)// 4

3.Set的方法

   (1) set.add(value) 添加一个数据,返回Set结构本身

s.add('a').add('b')console.log(s) // Set(6) {1, 2, 3, 4, "a","b"}

   (2)set.delete(value) 删除指定数据,返回一个布尔值,表示删除是否成功(删除e成功返回true,删除失败返回false)

console.log(s.delete(4))//  true

console.log(s)// Set(5) {1, 2, 3, "a","b"}

   (3) set.has(value) 判断该值是否为set的成员,返回一个布尔值(如果存在就返回true,不存在返回false)

console.log(s.has(1));// true

   (4) set.clear() 清除所有数据,没有返回值。

s.clear();console.log(s) // Set(0) {}

   (5) forEach()  使用回调函数遍历每一个成员

s.forEach(function(value,key,set){

console.log(value+"hello");

})

console.log(s)    // Set(5) {1, 2, 3, "a","b"}

Set 不允许有重复的数据


数据结构Map

字典:是用存储不重复key的Hash结构。不同股集合(Set)的是,字典使用的是[键,值]的形式来存储数据结构的。

JavaScript  的对象只能用字符串当作键。这个给它的使用带来了很大的限制。

为了解决这个问题,ES6提供了Map数据结构。他类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,object结构提供了“字符串-值”的对应。Map结构提供了“值-值”的对应,是一种更完善的Hash结构实现。如果你需要“键值对”的数据结构,Map比object更合适

1.如何创建一个Map

const map = new Map([

['a',1], ['b',2]

]);

console.log(map)  // Map(2) {"a" => 1, "b" => 2}

2.Map 类的属性

console.log(map.size) // 2

3.Map 类的方法

  (1) set(key,value) 设置简明key对应的键值为value,然而返回整个Map结构,如果key已经有值了,则键值会被更新,否则就会生成新的键

map.set('hello','word').set('hi','word')

console.log(map) //Map(4) {"a" => 1, "b" => 2, "hello" => "word", "hi" => "word"}

map.set('hello','word').set('hi','word').set('hello','nice')

console.log(map) //Map(4) {"a" => 1, "b" => 2, "hello" => "nice", "hi" => "word"}

(2) get(key) get方法读取key对应的键值,如果找不到key,返回undefined

console.log(map.get(‘a’)) // 1

console.log(map.get('d')) // undefined

(3) delete(key) 删除某个键值,返回true,如果删除失败,返回false

console.log(map.delete('a')) // true

console.log(map.delete('a')) // false 前面已经删除一次了,所以返回false

(4) has() 方法返回一个布尔值,表示某个键是否在当前Map对象之中;如果在返回true,如果不在,返回false

console.log(map.has(hi)) // true

(5) clear() 清除所有数据,没有返回值

map.clear();

console.log(map) // Map(0) {}

(6) keys() 返回键名的遍历器

(7) values() 返回键值的遍历器

(8) entries() 返回键值对的遍历器

(9) forEach() 使用回调函数遍历每个成员

map.forEach(function(key,value,map){

console.log(key+':'+value) // 每一项对应的匹配

})

map 里面的key的排列顺序是按照添加顺序进行排列的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值