当前位置:   article > 正文

set和map的使用_map里的set执行了add map里的数据变么

map里的set执行了add map里的数据变么

1.Set对象

Set对象是一些元素的集合(看到集合,我们就会联想到集合内的元素都是不重复),如果你在Set中添加已存在的元素,该元素不会被添加

说明:若添加的是对象或者数组,则是看添加的是否是指向同一地址,若不是指向同一块地址,则可以都添加进去

2.Set对象的方法

  1. let set = new Set();
  2. // add(value) 在对象尾部添加一个元素
  3. set.add(1);
  4. set.add(2);
  5. console.log("add方法 " + set);
  6. // clear() 移除对象内的所有元素
  7. set.clear();
  8. console.log("清除方法 " + set);
  9. // delete(value) 移除对象中与这个值相等的元素
  10. set.add(1);
  11. set.delete(1);
  12. console.log("移除某个元素 " + set);
  13. // size 得到对象元素的个数
  14. console.log("元素个数值: " + set.size);
  15. // keys() 返回一个新的迭代对象, 对象中包含每个元素的键名
  16. set.add(0);
  17. set.add(1);
  18. console.log("返回元素键名 " );
  19. for(let value of set.keys()){
  20. console.log(value);
  21. }
  22. // values() 返回一个新的迭代对象,对象中包含每个元素的键值
  23. console.log("返回元素键值 ");
  24. for(let value of set.values()){
  25. console.log(value);
  26. }
  27. // forEach(fn) 为set对象中每个元素调用一次回调函数fn
  28. console.log("遍历set对象:")
  29. set.forEach(value => {
  30. console.log(value);
  31. })
  32. // entries() 返回一个新的迭代对象,包含每个元素的键名和键值对
  33. console.log("返回元素的键名和键值对 ");
  34. for(let value of set.entries()){
  35. console.log(value);
  36. }
  37. // has(value) 判断指定值是否在set对象中,返回布尔值
  38. console.log("判断元素是否存在:" + set.has(1));
  39. // 可以使用for of遍历循环
  40. for(let value of set){
  41. console.log(value);
  42. }

运行结果如下:

 

  1. // new Set() 括号内可传入字符串,可将其转化为集合
  2. let set = new Set("abcde");
  3. set.forEach(value => {
  4. console.log(value);
  5. })
  6. console.log("-----------------------------");
  7. // 括号内也可传入数组
  8. let arr = [1,2,3];
  9. set = new Set(arr);
  10. set.forEach(value => {
  11. console.log(value);
  12. })
  13. console.log("-------------------------");
  14. // Array.from() 可将set对象转成数组
  15. let myArr = Array.from(set);
  16. console.log(myArr);

运行结果如下:

 3.Map对象的方法

map对象和set对象的方法大致相同,map对象中的键值是有序的

  1. // map对象没有add方法,而是有set方法
  2. let map = new Map();
  3. // set(key,value) 添加键名和键值
  4. map.set('h',1);
  5. map.set('d',2);
  6. console.log(map);

运行结果如下:

 

  1. // get(key) 根据键名返回键值
  2. let map = new Map();
  3. map.set('a',1);
  4. console.log(map.get('a'));

运行结果如下:

  1. // 使用数组来创建一个map对象
  2. let arr = [[0,"zero"],[1,"one"]];
  3. let map = new Map(arr);
  4. console.log(map);

运行结果如下:

 NaN也可以作为Map对象的键,虽然NaN和任何值都是不相等的,但两个NaN作为键名来说是没有区别的,

  1. var myMap = new Map();
  2. myMap.set(NaN, "not a number");
  3. myMap.get(NaN); // "not a number"
  4. var otherNaN = Number("foo"); // otherNaN 为NaN
  5. myMap.get(otherNaN); // "not a number"

4.Map的合并

  1. var first = new Map([[1, 'one'], [2, 'two'], [3, 'three'],]);
  2. var second = new Map([[1, 'uno'], [2, 'dos']]);
  3. // 合并两个 Map 对象时,如果有重复的键值,则后面的会覆盖前面的,对应值即 uno,dos, three
  4. var merged = new Map([...first, ...second]);

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号