JavaScript——ES6新特性Map,Set和f循环JavaScript——ES6新特性Map,Set和for…of循环
Map对象
Map 对象保存键值对。任何值(对象或者原始值) 都可以作为⼀个键或⼀个值。
//Map的定义和打印
var map=new Map([["张三",100],["李四,90],["王五",80]]);
var ("张三");
console.log(name);//通过Key获得value
//Map的添加和删除
map.set("神明",70);//添加
map.delete("张三");//删除
Map的合并
/
/Map的合并
var map1 =new Map([[1,'one'],[2,'two'],[3,'three'],]);
var map2 =new Map([[1,'four'],[2,'five']]);
var map3 =new Map([...map1,...map2]);
//合并两个Map对象时,如果有重复的键值,则后⾯的会覆盖前⾯的,对应值即 four,five,three
Map的克隆
var map1 =new Map([[1,'one'],[2,'two'],[3,'three'],]);
var map2 =new Map(map1);
console.log(map1 === map2);// false。
//Map对象构造函数⽣成实例,迭代出新的对象。
Set对象
Set 对象允许你存储任何类型的唯⼀值,⽆论是原始值或者是对象引⽤。Set 对象存储的值总是唯⼀的,是⽆序不重复的集合。//Set对象定义和去重
var set =new Set([1,1,1,2,2,]);
console.log(set);//set{1,2} Set可以去重
//添加和删除
set.add(3);//set(3) {1,2,3}
set.delete(1);//set(2) {2,3}
//判断是否含有某个元素
set.has(2);//true
//并集
var set1 =new Set([1,2,3]);
var set2 =new Set([4,3,2]);
var set3 =new Set([...a,...b]);// {1, 2, 3, 4}
//交集
var set1 =new Set([1,2,3]);
var set2 =new Set([4,3,2]);
var set3 =new Set([...a].filter(x => b.has(x)));// {2, 3}
//差集
var set1 =new Set([1,2,3]);
var set2 =new Set([4,3,2]);
var set3 =new Set([...a].filter(x =>!b.has(x)));// {1}
for…of循环
for…of语句创建⼀个循环来迭代可迭代的对象。在 ES6 中引⼊的 f 循环,以替代 for…in 和 forE
ach() ,并⽀持新的迭代协议。for…of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。
语法:
for (variable of iterable){
statement
}
variable:每个迭代的属性值被分配给该变量。
iterable:⼀个具有可枚举属性并且可以迭代的对象
for…of测试
数组(Arrays)
var arr =[1,2,3,4,5]
for(var x of arr){
console.log(x)
}
//variable x
//iterable arr
Map(映射)
Map 对象就是保存 key-value(键值) 对。对象和原始值可以⽤作 key(键)或 value(值)。Map 对象根据其插⼊⽅式迭代元素。换句话说,f 循环将为每次迭代返回⼀个 key-value(键值) 数组。
var map =new Map(["张三",100],["李四",90],["王五",80]);
for(let x of map){
javascript的特性console.log(x)
}
Set(集合)
Set(集合) 对象允许你存储任何类型的唯⼀值,这些值可以是原始值或对象。 Set(集合) 对象只是值的集合。 Set(集合) 元素的迭代基于其插⼊顺序。 Set(集合) 中的值只能发⽣⼀次。如果创建⼀个具有多个相同元素的 Set(集合) ,那么它仍然被认为是单个元素。
var set =new Set([4,4,5,6,7])
for(let y of set){
console.log(x)
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论