JavaScript——ES6新特性Map,Set和for...of循环

JavaScript——ES6新特性Map,Set和for…of循环

Map对象

Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。

//Map的定义和打印
var map=new Map([["张三",100],["李四,90],["王五",80]]);
        var name=map.get("张三");
        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 中引入的 for...of 循环,以替代 for…in 和 forEach() ,并支持新的迭代协议。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 对象根据其插入方式迭代元素。换句话说, for...of 循环将为每次迭代返回一个 key-value(键值) 数组。

var map = new Map(["张三",100],["李四",90],["王五",80]);
for(let x of map){
    
    
    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)
}

猜你喜欢

转载自blog.csdn.net/wpc2018/article/details/110902678