ES6--set,map

Set

1.初始化

         Set类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构展。Set 构造函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。

var set = new Set();

2.Set API

Set.prototype.size        返回Set实例的成员总数。
Set.prototype.add(value)    添加某个值,返回Set结构本身
Set.prototype.delete(value)    删除某个值,返回一个布尔值,表示删除是否成功。
Set.prototype.has(value)    返回一个布尔值,表示该值是否为Set的成员。
Set.prototype.clear()    清除所有成员,没有返回值。
Set.prototype.keys()    返回键名的遍历器
Set.prototype.values()    返回键值的遍历器
Set.prototype.entries()    返回键值对的遍历器
Set.prototype.forEach()    使用回调函数遍历每个成员

let set = new Set([1, 2, 3, 4, 1, 2, 3, 6]);
// 添加
// set.add('hello', 'world');
// 删除
// set.delete('world');
// 清空
// set.clear();
// 查询长度
// console.log(set.size);
// 判断是否有某个元素
// console.log(set.has('hello'));
// keys方法,返回迭代器对象
// console.log(set.entries());
// forEach()方法
set.forEach((item) => {
  // console.log(item);
})

// Set应用

//应用:数组去重
 Array.form(new Set(arr))

Map

1.初始化

       Map类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。Map 可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。

var map = new Map([ ['name', '张三'], ['title', 'Author'] ]);

2.Map API

Set.prototype.size    返回 Map 结构的成员总数。
Set.prototype.set(key, value)    set方法设置键名key对应的键值为value,然后返回整个map结构。如果key已经有值,则键值会被更新,否则就新生成该键。
Set.prototype.get(key)    get方法读取key对应的键值,如果找不到key,返回undefined。
Set.prototype.has(key)    has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。
Set.prototype.delete(key)delete方法删除某个键,返回true。如果删除失败,返回false。
Set.prototype.clear()    清除所有成员,没有返回值
Set.prototype.keys()    返回键名的遍历器
Set.prototype.values()    返回键值的遍历器
Set.prototype.entries()    返回键值对的遍历器
Set.prototype.forEach()    使用回调函数遍历每个成员

let obj = {
  name: '张三',
  age: 12,
  gender: 'male'
}
let entry = Object.entries(obj);
// Map构造函数,参数接受数组的键值对集合
let map = new Map(entry)
// 添加
map.set({ username: 'admin1' }, [1, 2, 3]);
console.log(map.has('name'));
// keys values entries
// console.log(map.keys());
// console.log(map.values());
// console.log(map.entries());
// console.log(map);

// forEach()
map.forEach((value, key) => {
  console.log(key + ':' + value);
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值