快捷搜索:

es6-set、map

Set 地址1、地址2

一种新的类似数组的数据布局,包管值独一。

入参:具有 iterable 接口的数据,如数组:const set= new Set([1,2,3,4,4]);

去除数组 arr 重复成员:

1、[...newSet(arr)]

2、const items = new Set([1,2,3,4,5]); const array=Array.from(items);

属性:prototype、size

措施:add\delete\has\clear

遍历:keys\values\entries\forEach

遍历的利用:求交集、并集、差集:

let a=newSet([1,2,3]); let b=newSet([4,3,2]);

// 并集  let union = new Set([...a,...b]) ;// Set {1, 2, 3, 4}

// 交集 let intersect = new Set([...a].filter(x=>b.has(x))); // set {2, 3}

// 差集 let difference = new Set([...a].filter(x=>!b.has(x))); // Set {1}

字符串转换:

var text = 'Indiana'; var mySet = newSet(text);

map: 地址

背景:传统工具的键值对, key 只能为 字符串;map 的 key 值可所以各类值 (如数组、工具),也便是值值对。

入参:可接管 具有 Iterator 接口、且每个成员都是一个双元素的数组的数据布局

措施:set\get\delete\has\size\clear

留意:map 的键实际是跟内存地址绑定的。

遍历措施:keys\values\entries\forEach

map 布局转换为数组:

const map=new Map([[1,'one'],[2,'two'],[3,'three'],]);

[...map.keys()]   // [1, 2, 3]

[...map.values()]   // ['one', 'two', 'three']

[...map.entries()]   // [[1,'one'], [2, 'two'], [3, 'three']]

[...map]   // [[1,'one'], [2, 'two'], [3, 'three']]

不合类型互相转化:数组、map、set、json、工具

您可能还会对下面的文章感兴趣: