关于SET和MAP
ES6新增的两个集合,SET和MAP;集合就是一个容器。在编程语言中像数组就是一个集合,数组里面可以放很多的数据,但数组里面的元素可以重复,也可以放对象,有长度、有方法。SET和MAP都是可以对数组进行去重的。
- SET就是一个类似于数组的数据结构
//内置构造函数的创建
let 变量名 = new Set([数组数据,基本数据类型,...])
let a = new Set([1,2,3,1,3])
//会帮我们把数组里面的重复数据去掉
console.log(a) //Set(3) {1, 2, 3}
//他的属性和方法有:
//size属性:表示数据结构里面有多少数据
let a = new Set([1,2,3,1,3])
console.log(a.size) //3 返回值是元素的个数
//add()方法:向该数据集合里面添加数组的使用,添加的重复数据不会进行增加 返回值是集合的本身
let a = new Set([1,2,3,1,3])
a.add("hello",3)
console.log(a) //Set(4) {1, 2, 3, "hello"}
//delete()方法:用来删除数据结构里的数据 删除成功返回true 删除失败返回false
let a = new Set([1,2,3,1,3])
console.log(a.delete(3)) //true
a.delete(3)
console.log(a) //Set(2) {1, 2}
//clear()方法:用来清空数据结构里的所有数据 无返回值
let a = new Set([1,2,3,1,3])
a.clear()
console.log(a) //Set(0) {}
//has()方法:用来判断该数据结构里面有没有这个数据 有就返回true 没有就返回false
let a = new Set([1,2,3,1,3])
console.log(a.has(3)) //true
console.log(a.has(5)) //false
//遍历 使用for of 循环
let arr =new Set([1,2,"hello",true,1])
for(let i of arr){
console.log(i) // 1,2,hello 4,true
}
//forEach()循环
let arr =new Set([1,2,"hello",true,1])
arr.forEach(function(item,index){
console.log(item) //1,2,hello,true
})
//和Array.from()
let arr =new Set([1,2,"hello",true,1])
console.log(Array.from(arr))
//引用数据类型地址靠地址删除,对象是一个键值对的集合;key只能是string,若不是string类型会强制转为数据类型。
let a = {name:"Jack"}
console.log(a.toString) //ƒ toString() { [native code] }
- MAP是一个类似于对象的数据结构
let map = new Map([
['name', '张三'],
['title', 'Author']
]);
console.log(map) //Map(2) {"name" => "张三", "title" => "Author"}
//size()属性用来获取该数据结构的长度
let map = new Map([
['name', '张三'],
['title', 'Author']
]);
console.log(map.size) //2
//set()方法 用来向数据结构里面添加成员的
let map = new Map([
['name', '张三'],
['title', 'Author']
]);
map.set("age",18)
console.log(map) //Map(3) {"name" => "张三", "title" => "Author", "age" => 18}
//get()方法 用来获取数据结构里的某个成员的
let map = new Map([
['name', '张三'],
['title', 'Author']
]);
console.log(map.get("name")) //张三
//delete()方法 用来删除数据机构里面的数据的
let map = new Map([
['name', '张三'],
['title', 'Author']
]);
map.delete("name")
console.log(map) //Map(1) {"title" => "Author"}
//clear()方法 用来清除该数据结构的
let map = new Map([
['name', '张三'],
['title', 'Author']
]);
map.clear()
console.log(map) //Map(0) {}
//has()方法 用来检测有没有某个数据的
let map = new Map([
['name', '张三'],
['title', 'Author']
]);
console.log(map.has("name")) //true
//遍历
let map = new Map([
['name', '张三'],
['title', 'Author']
]);
let keys = map.keys()
for(let key of keys){
console.log(key,map.get(key)) //name 张三 title Author
}