数据集合既可以用数组表示,也可以用对象表示。一般情况,数组表示有序的数据集合,对象表示无序的数据集合。
Map集合和Set集合可以通过构造函数,把数组转为Map对象和Set对象,然后使用Map和Set的一些属性做操作,比如set去重,然后结果可以再转为数组。
Map和数组的关系:
let kvArray = [["key1", "value1"], ["key2", "value2"]];
// 使用常规的Map构造函数可以将一个二维键值对数组转换成一个Map对象
let myMap = new Map(kvArray);
myMap.get("key1"); // 返回值为 "value1"
// 使用Array.from函数可以将一个Map对象转换成一个二维键值对数组
console.log(Array.from(myMap)); // 输出和kvArray相同的数组
// 更简洁的方法来做如上同样的事情,使用展开运算符
console.log([...myMap]);
// 或者在键或者值的迭代器上使用Array.from,进而得到只含有键或者值的数组
console.log(Array.from(myMap.keys())); // 输出 ["key1", "key2"]