es6 的Set和Map

//Set 和Map
类似数组 成员唯一(无重复值)

set 构造函数
var arr3=[1,2,3,3,4,5,3,5]
a,三种添加方式
const arr4=new Set();
// 1.
const arr4=new Set().add(1).add(2).add(3);
// 2. add()
arr4.add(1)
arr4.add(2)
arr4.add(3)
arr4.add(4)
//3.
const arr5=new Set([1,2,3,4])

//成员的总数size 属性
arr5.size
const arr4=new Set([1,2,3,4]); arr4.size < 4
const arr5=new Set([1,2,3,4,5,1,2,1,3,4]);
arr5.size 结果< 5 // 去重操作  arr5 {1, 2, 3, 4, 5}
size 可以去重
b,删除
delete(n) //布尔值 n不是索引 是成员
arr5.delete(2)
true
arr5
Set(4) {1, 3, 4, 5}
c, has() //布尔值 判断值是否为set成员
clear() 删除所有的成员 没有返回值

Array.from() 将Set结构转成数组
const arr7=new Set([‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘])
let arr2=Array.from(arr7) //将set结构转成数组
console.log(arr7) < Set(6) {"a", "b", "c", "d", "e", …}
console.log(arr2) < (6) ["a", "b", "c", "d", "e", "f"]

遍历
for...of
for...in
const arr8=new Set([‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘])
for(let list of arr8.entries()){ //keys()键 values()值
console.log(list)
}
< ["a", "a"] ["b", "b"] ["c", "c"] ["d", "d"] ["e", "e"] ["f", "f"]
keys() 遍历键
values() 遍历值
entries() 遍历键值对

合并
let a=new Set([‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘a‘,‘f‘,‘b‘]);
let b=new Set([‘w‘,‘r‘,‘e‘,‘d‘,‘e‘]);
let c=new Set([...a,...b]) // 两个数组的并集 并去重

交集
let d=new Set([...a].filter(x=>b.has(x)));
filter的callback函数需要返回布尔值true或false. 如果为true则表示通过,为false 过滤掉
< Set(2) {"d", "e"}

***********************************

Map (对象) 键值对的集合
var obj={
name:"111",
age:32
}
const m=new Map();
let str ={x:111}
set() 添加成员
m.set(‘str‘,‘111‘) 对比 m.set(str,‘111‘) ‘str ’是字符串 str是{x:111}
m.get(‘str‘)
m.keys() m.values()
[[Entries]]//键值对的遍历
:
Array(2)
0:{"str" => "222"}
1:{Object => "sss"}

map可以转换成数组,也可以转换成对象

原文地址:https://www.cnblogs.com/crystal2018/p/8663161.html

时间: 2024-10-15 07:16:39

es6 的Set和Map的相关文章

es6的Set和Map数据结构

Set 和 Map 数据结构 Set WeakSet Map WeakMap Set § ? 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 上面代码通过add

es6入门set和map

ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化. var set = new Set([1, 2, 3, 4, 4]); [...set]console.log(set) // [1, 2, 3, 4] var s = new Set(); [2, 3, 5, 4, 5, 2, 2].map(x => s.add(x)); console.log(s) // 2 3 5 4 在Set内部,两

使用es6的set和map实现数组去重复

var set = new Set();var arr = [1, 2, 3, 3, 2, 1];arr.map(val => set.add(val));// arr.map(function(val) {// set.add(val);// })arr = [];for(i of set) { arr.push(i);}console.log(arr) // [1, 2, 3] function dedupe(array) { return Array.from(new Set(array)

es6之Set和Map

一. Set 类似数组,成员值唯一,var s = new Set() s加入值用add,加入时不会发生类型转换(判断两值是否相等用的 ===,但Set会认为NaN等于自己) Set.prototype.constructor === Set , Set.prototype.size返回Set实例的成员总数 delete删除某个值,has返回布尔值,clear清空实例 keys返回键名的遍历器,values返回键值的遍历器,entries返回键值对的遍历器, Set.prototype[Symb

[ES6] When should use Map instead of Object

Use Maps when keys are unknown until runtime: Map: let recentPosts = new Map(); createPost( newPost, (data)=>{ // Key unknown until runtime, so use Map recentPosts.set(data.author, data.message); }); Object: const POST_PRE_PAGE=15; // Keys are previo

ES6(十)map、set与数组和对象的比较

Map和数组的对比 let map = new Map() let array = [] // 增 map.set('t', 1) array.push({t: 1}) console.log('add', map, array) // 查 let mapExist = map.has('t') let arrayExist = array.find(item => item.t) console.log('get', mapExist, arrayExist) // 改 map.set('t'

es6 set容器和map容器

set容器:多个无序的不可重复的value集合体,是一个构造函数 1.可以去重 2.add(value):添加数据 3.delete(value):删除数据 4.has(value):判断是否包含值,返回true/false 5.clear(value):清空数据 6.size():判断数据长度 map容器:多个无序key不重复的keyvalue的集合体.相当于一个二维数组 let map=new Map([[]]) 1.set(key,value):添加数据 2.get(key):获取数据 3

【ES6】Set和Map数据结构

1.set 类似于数据,但是成员的值都是唯一的,没有重复的值 const s=new Set() let arr=[1,2,3,4] arr.forEach(x=>s.add(x)) for(let i of s){ console.log(i) } const s=new Set([1,2,3,4,5]) [...s] s.size //5 去除数组重复元素 (Array.from可以将Set解构转为数组) [...new Set(array)]    Array.from(set) 去除字符

ES6 之 Set数据结构和Map数据结构 Iterator和for...of循环

ECMAScript 6 入门 Set数据结构 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2, 3, 5, 4, 5, 2, 2].map(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 上面代码通过add方法向Set结构加入成员,结果表明Set结构不会添加重复的值. 向S