1.Set
ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
1.1基本用法
代码案例:
// let s=new Set();
// s.add(10)
// s.add(20)
// s.add(30)
// s.add(10) //加不进去
// s.add(20)
1.2常见方法
-
add()
-
delete()
-
clear()
-
size属性
-
forEach()
-
has()
-
keys() values() entries()
代码案例:
// let s=new Set();
// s.add(10)
// s.add(20)
// s.add(30)
// s.add(10) //加不进去
// s.add(20)
// s.delete(20);
// s.clear()
// console.log(s.has(20));
// console.log(s.has(200));
// console.log(s.size);
// s.forEach((v1,v2)=>{
// console.log(v1,v2);
// })
// console.log(s.keys());
// console.log(s.values());
// console.log(s.entries());
// console.log(s);
// console.log(s[0]);//error
let s = new Set();
s.add(10).add('100').add('hello').add(false)
console.log(s);
1.3 应用
数组去重
代码案例:
//数组--->set
// let arr=[10,234,235,231,34]
// // console.log(arr);
// //
// let s=new Set(arr);
// // console.log(s);
// arr.forEach(item=>{
// s.add(item)
// })
// console.log(s);
//数组去重
function singleArr(arr) {
// let s=new Set(arr) ;
// // let arr=[...s];
// let arr=Array.from(s);
// return arr
// return Array.from(new Set(arr));
return [...new Set(arr)];
}
2.Map
ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。
2.1基本用法
let m = new Map();
m.set('name', '李四');
m.set('attr', "打拳");
m.set('age', 20)
let key = [];
m.set(key, '哈哈哈哈')
m.set({}, { id: 0, msg: "err" })
console.log(m);
2.2常见方法
-
set()
-
get()
-
delete()
-
clear()
-
size属性
-
forEach()
-
has()
-
keys() values() entries()
代码案例:
let m = new Map();
m.set('name', '李四');
m.set('attr', "打拳");
m.set('age', 20)
// m.set('attr','游泳');//修改
// m.set("age",90);
let key = [];
m.set(key, '哈哈哈哈')
m.set({}, { id: 0, msg: "err" })
// m.set([],'哈哈哈')
// console.log(m.get('age'));
// console.log(m.get([]));//undefined ?
// console.log(m.get(key));
// m.delete("age")
// m.clear();
// console.log(m.size);
console.log(m.has('age1'));
console.log(m);
// console.log(m.values());
// console.log(m.keys());
// console.log(m.entries());
m.forEach((v, k) => {
console.log(k, v);
})