ES6-set、map

Set、Map学习

  1. set

Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

const s = new Set();
[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));
for (let i of s) {
  console.log(i);
}
// 2 3 5 4
  • 接收一个数组作为参数初始化
const set = new Set([1,2,3,4,4]);
console.log([...set])
  • 去除字符串里重复的字符串
console.log([...new Set("aabbccdd")].join('')) 
  • set.size、set.add
let str = new Set()
str.add(1).add(2).add(2)
console.log(str.size); //2
  • keys(),values(),entries

keys(),values(),entries()这些方法返回都是遍历器对象,由于set没有键名只有键值,所以key和value方法完全一致

let ss = new Set(['red','green','bule']);
for(let item of ss.keys()){
    console.log(item)
}

for(let item of ss.values()){
    console.log(item)
}

for(let item of ss.entries()){
    console.log(item) 
}
  1. Map

map数据结构,键值对的集合,键的范围不限于字符串,各种类型都可以当作键,包括对象

const m = new Map();
const o = {p:'hello world'};
m.set(o,'content');
console.log(m.get(o)); //constent
console.log(m.has(o)); //true
console.log(m.delete(o)); //true
console.log(m.has(o)); //false
  • 也可以接受一个数组作为参数
const map = new Map([
    ['name','张三'],
    ['title','author']
]);
console.log(map.size); //2
console.log(map.has('name'));// true
console.log(map.get('name'));// 张三
console.log(map.has('title')); //true
console.log(map.get('title')); //author
  • 数组转为对象
let mm = new Map([
    [true,7],
    [{foo:3},['abc']]
]);
console.log(mm) //Map(2) {true => 7, {…} => Array(1)}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值