ES6中的Set和Map数据结构

mac2026-08-28  10

一、 Set

1. 基本用法

Set类似于数组,但是成员的值是唯一的,因此不会添加重复的值 let set = new Set([1, 2, 3, 1, 1, 1, 2]) [...set] // [1, 2, 3] 加入值时不会发生类型转换,1和“1”是两个值 let set = new Set([1, 2, 3, "1", 1, 1, 2]) [...set] // [1, 2, 3, "1"]  Set中NaN也是唯一的,不会重复添加 let set = new Set([1, 2, 3, "1", 1, NaN, NaN]) [...set] // [1, 2, 3, "1", NaN] Set中,对象总是被视为不同值Set可以用于数组去重 Array.from(new Set([1, 2, 3, 1, 1, 2])); // [1, 2, 3]

 

2. 属性及方法

size:返回Set的成员数add(value):Set中添加该值,返回Set本身delete(value):Set中删除该值,返回Booleanhas(value):Set中是否有该成员,返回Booleanclear(value):Set清空所有成员,无返回值 let set = new Set(); console.log(set.size); // 0 set.add(1).add(2).add(3) set.size; // 3 set.has(1); // true set.delete(1); // true set.has(1); // false set.clear(); set.size; // 0

3. 遍历

Set支持keys、values、 entries方法Set可以直接使用for...of循环 let set = new Set([1, 3, 5, 7, "red"]); for (let x of set) { console.log(x); } // 1 // 3 // 5 // 7 // red forEach let set = new Set([1, 3, 5, 7, "red"]); let set = new Set([1, 3, 5, 7]); set.forEach((value, index) => console.log(value)); // 1 // 3 // 5 // 7

二、 Map

最新回复(0)