数组新增
Set数据结构
Set必须接受数组作为参数
Set: 数据结构,类似于数组,但是它的值不会重复 值使用大括号对象形式{12,34,56}
var s = new Set([12,34,12,34,56]);
console.log(s); // {12, 34, 56} s并不是数组
console.log(Array.from(s));// [12, 34, 56] 将伪数组转为数组
var arr= [23,45,23,45];
console.log(Array.from(new Set(arr))); // [23, 45] set值不会重复
Set的属性和方法
属性:
.size
获取 set 数组的长度
方法:
.add(元素)
向Set数组中添加元素
.delete(元素)
删除Set数组中的某一个元素
.has(元素)
检查Set数组是否包含某个元素,返回的是布尔值
.clear()
清空Set集合
案例
var s = new Set();
console.log(s.size) // 0
s.add(12)
s.add(12)
s.add(34)
s.add(35)
console.log(s.size); //3
s.delete(12);//删除12
console.log(Array.from(s)); // [34, 35] 将伪数组转为数组
console.log(s.has(12)); //false
console.log(s.has(34)); // true
s.clear(); //清空
console.log(Array.from(s)); //[]
Set中不允许出现重复的元素 所以用Set写数组去重是非常方便的 例如:
// 使用Set数组去重
let num = [1,1,2,2,3,3,4,5]
let newnum = [...new Set(num)]
console.log(Array.from(new Set(num)))
console.log(newnum)
// 使用 Array.from和扩展运算符都可以将Set数据格式转换为数组格式
map数据结构
map:类似于对象 {"a" => 1, "b" => 2}这样的格式
map的属性和方法
.size
获取长度
.set(key,value)
设置键值对
.get(key)
获取
.delete(key)
删除
.clear()
清空
.has(key)
检查是否包含 返回的是 布尔值
测试
var m = new Map()
m.set('a',1) ; // 添加 设置内容
m.set('b',2)
console.log(m); // {"a" => 1, "b" => 2}
console.log(m.get('a')); // 1 获取元素
console.log(m.has('a')); //true 判断是否包含
m.delete('a') //删除键为a的元素
console.log(m); //{"b" => 2}
m.clear();
console.log(m); {}
console.log(m.size); //0