<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>set</title>
</head>
<body>
<script type="text/javascript">
// es6 提供了新的数据结构set, 它类似于数组,但是成员值都是唯一的,没有重复值
let s1 = new Set([1, 2, 8, 2, 1]);
console.log(s1);
console.dir(s1);
s1.add(10); // 添加元素, 返回新的集合set
console.log('----', s1.add(40));
s1.delete(40);
console.log(s1.delete(10)); // 返回布尔值 成功true 失败false
// s1.clear(); // 没有返回值
console.log(s1);
// 查询 has()
console.log(s1.has(2));
s1.forEach(item => console.log(item));
for(let item of s1) {
console.log('for--of', item)
}
for(let item of s1.keys()) {
console.log('for--keys', item)
}
for(let item of s1.values()) {
console.log('for--values', item)
}
// 每个值在 Set 中都被视为唯一,因此它们本身成为了键名。
for(let [item, index] of s1.entries()) {
console.log('for--entries', index,item)
}
//把set集合展开到一个新数组的办法
console.log(Array.from(s1));
console.log([...s1]);
</script>
</body>
</html>
上述运行结果: