ES6中的数据结构
Set
-
size 获取set集合的长度
-
add(值) 给集合添加值,返回新set
-
delete(值) 删除某个值,返回布尔值,表示是否删除成功
-
has(值) 查询这个值是否时集合的成员,返回布尔值
-
clear() 清空集合,没有返回值
// let s=new Set(类数组)
let s = new Set("hello")
console.log(s);//{"h", "e", "l", "o"} 可以去重
// 给数组去重
let arr = [1, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8]
let s1 = new Set(arr);// 把数组转为set集合,并去重
// console.log(s1);//{1, 2, 3, 4, 5, …}
let newarr = [...s1]// 类数组转为真正的数组
console.log(newarr);//[1, 2, 3, 4, 5, 6, 7, 8]
let s2 = new Set("helloworld")
console.log(s2.size);//7
// for(var i=0;i<s2.size;i++){
// console.log(s2[i]);//undefined
// }
s2.forEach(function (v) {
console.log(v);
})
// for...of es6提供一种统一的遍历方法 可以遍历所有的具有iterator接口(除了对象以外的类数组)的数据
for (var v of s2) {
console.log(v);
}
s2.add("haha")
console.log(s2);// {"h", "e", "l", "o", "w", "r", "d", "haha"}
s2.delete("o")
console.log(s2);// {"h", "e", "l", "w", "r", "d", "haha"}
console.log(s2.has("o"));//false
console.log(s2.has("l"));//true
s2.clear()
console.log(s2);//{}
Map
- size 获取Map的长度
- set(key,val) 添加一条数据
- get(key) 根据key获取val
- has(key) 是否存在key
- delete(key) 删除某条数据
- clear() 清空所有数据
let m = new Map([["name", "zs"], [123, 456], [[1, 2], 789]])
console.log(m);//{"name" => "zs", 123 => 456, Array(2) => 789}
let m1 = new Map([["name", "zs"], ["age", 20], ["hobby", "吃饭"]])
console.log(m1);//{"name" => "zs", "age" => 20, "hobby" => "吃饭"}
console.log(m1.size);
m1.set("sex", "nv")
m1.set("sex", "nan")
console.log(m1);// {"name" => "zs", "age" => 20, "hobby" => "吃饭", "sex" => "nv"}
console.log(m1.get("name"));
console.log(m1.has("sex"));//true
console.log(m1.has("job"));//false
m1.delete("hobby")
console.log(m1);//{"name" => "zs", "age" => 20, "sex" => "nan"}
m1.clear()
console.log(m1);//Map(0) {}