ES6 新增集合 Map 和 Set

Map

Map 是一组键值对的结构,具有极快的查找速度。

初始化

初始化Map需要一个二维数组,或者直接初始化一个空Map:

	var m1 = new Map([['a', 'a1'], ['b', 'b2'], ['c', 'c3']]);
    var m11 = new Map([['a', 'a1'], ['b', 'b2'], ['c', 'c3']]);
    var m2 = new Map();

打印 m1,会返回Map {“a” => “a1”, “b” => “b2”, “c” => “c3”};
typeof(m1) 是 object, 说明 Map 仍属于 object;
注意:m1 和 m11 并不相等,虽然两个 Map 里面的值一样,但是属于不同的object;

Map 的相关属性
  1. size属性:返回 Map的元素数
console.log(m1.size);		// 3
  1. keys(): 获取Map的所有key
console.log(m1.keys());		// 返回 MapIterator {"a", "b", "c"}
  1. values(): 获取Map的所有值
 console.log(m1.values());	// 返回 MapIterator {"a1", "b2", "c3"}
  1. entries(): 获取Map所有成员
console.log(m1.entries());	// 返回 MapIterator {"a" => "a1", "b" => "b2", "c" => "c3"}
  1. set(): 给Map添加数据,返回添加后的Map (给已存在的键赋值会覆盖掉之前的值)
console.log(m2.set('a', 1));	// 返回Map  {"a" => 1}
console.log(m2.set('b', 2));	// {"a" => 1, "b" => 2}
console.log(m2.set('a', 11));	// {"a" => 11, "b" => 2} 
  1. has(): 检测是否存在某个key,返回布尔值
console.log(m2.has('a'));		// true
console.log(m2.has('c'));		// false
  1. get(): 获取某个key的值,返回key对应的值,没有则返回undefined
console.log(m2.get('a')); 		// 11
console.log(m2.get('c'));		// undefined
  1. delete(): 删除某个key及其对应的value,返回布尔值,成功:true; 失败:false
console.log(m2.delete('b'));	// true
console.log(m2.delete('d'));	// false
console.log(m2.get('b'));		// undefined, 因为b已经删除
  1. clear(): 清除所有的值,返回 undefined
console.log(m1.clear());		// undefined
console.log(m1);				// {} 

Set

Set 和 Map 类似,也是一组 key 的集合,但不存储 value。由于在 Set 中 key 会自动排重,这里的排重是严格等于,即 === ,因此 Set 中没有重复的 key。

初始化

初始化 Set 需要提供一个 Array 作为输入,或者直接创建一个空 Set:

 var s1 = new Set(['a', 'b', 'c']);
    var s11 = new Set(['a', 'b', 'c']);
    var s2 = new Set(['a', 'a', 'b', 'b', 'c', 'c']);
    var s3 = new Set();
  1. size属性: 返回Set的元素数
 console.log(s1.size);			// 3
  1. keys(): 获取Set的所有key
console.log(s1.keys());		// 返回 SetIterator {"a", "b", "c"}
  1. values():获取Set的值,返回结果同keys()
console.log(s1.values());		// 返回 SetIterator {"a", "b", "c"}
  1. entries(): 获取Set所有成员,返回结果同keys()
console.log(s1.entries());	// 返回 SetIterator {"a", "b", "c"}
  1. add() 给集合添加数据,返回添加后的Set (添加重复的值,会被排重掉)
console.log(s3.add('aa'));		// Set(1) {"aa"}
console.log(s3.add('bb'));		// Set(2) {"aa", "bb"}
console.log(s3.add('aa'));		// Set(2) {"aa", "bb"}
  1. has(): 查询集合中是否包含某个元素,返回布尔值
console.log(s3.has('aa'));		// true
console.log(s3.has('ff'));		// false
  1. delete(): 删除集合中的某个元素 返回布尔值
console.log(s3.delete('aa'));	// true
console.log(s3.delete('ee'));	// false
console.log(s3);				// Set(1) {"bb"}
  1. clear(): 清除集合的所有值 返回undefined
console.log(s1.clear());		// undefined
console.log(s1);				// Set(0) {}

猜你喜欢

转载自blog.csdn.net/Web_blingbling/article/details/108326942
今日推荐