写点什么

ES6 新特性(四)

作者:阡陌r
  • 2023-10-29
    江苏
  • 本文字数:776 字

    阅读完需:约 3 分钟

1 Set

1.1 介绍

Set 是 ES6 的一个新的集合对象,里面的元素唯一。实现了 iterator 接口,可以使用 for of 遍历

// 语法1.创建Set构造函数创建Setlet s = new Set(); // 创建空的Set集合// Set构造器可接受一个可遍历的对象,作为Set集合的初始值let s2 = new Set(['李白', '杜甫', '苏轼', '王维', '李白']);console.log(s2); // Set(4) {'李白', '杜甫', '苏轼', '王维'}
// 语法2.size属性以及常用方法 add|delete|has|clears2.size(); // 4s2.add('白居易'); // Set(5) {'李白', '杜甫', '苏轼', '王维', '白居易'}s2.delete('王维'); // trues2.has('白居易'); // trues2.has('王维'); // falses2.clear();console.log(s2); // Set(0) {size: 0}
// 语法3.使用for of 遍历Sets2 = new Set(['李白', '杜甫', '苏轼', '王维', '李白']);for (v of s2) { console.log(v);}// 李白// 杜甫// 苏轼// 王维
复制代码

1.2 应用

  • 数组去重

let arr = [1, 2, 3, 4, 5, 1, 2, 3, 4];let s = new Set(...arr);
复制代码
  • 求交集

let arr2 = [3, 5, 6, 6];let s2 = [new Set(...arr)].filter(item => new Set(arr2).has(item));console.log(s);
复制代码
  • 求并集

let union = [...new Set([...arr, ...arr2])];console.log(union);
复制代码
  • 差集

2 Map

Map 类似与对象,也是键值对的集合,但是 key 的范围不限于字符串。Map 也实现了 iterator 接口,可以使用 for of 遍历。

// 语法1.创建Map对象let m = new Map();
// 语法2.Map对象的常用方法m.set('name', 'Alex');m.set('func', function() { console.log('this is a function'); });let key = { id: '001', desc: '01 object key'}m.set(key, []);console.log(m); // 见【图1】m.size;m.clear()
// 语法3.使用for of遍历for (let v of m) { console.log(v);}// (2) ['name', 'Alex']// (2) ['func', ƒ]// (2) [{…}, Array(0)]
复制代码

【图 1】


发布于: 刚刚阅读数: 4
用户头像

阡陌r

关注

即行于阡陌,也归于浩瀚 2018-03-26 加入

还未添加个人简介

评论

发布
暂无评论
ES6新特性(四)_JavaScript_阡陌r_InfoQ写作社区