Advertisement
Guest User

Untitled

a guest
Dec 4th, 2015
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. // Set
  2. // es5
  3. var courses = [];
  4.  
  5. function addCourse(course) {
  6. if(courses.indexOf(course) === -1) {
  7. courses.push(course);
  8. }
  9. }
  10.  
  11. addCourse("jQuery Basics");
  12. addCourse("Node.js Basics");
  13. addCourse("jQuery Basics");
  14.  
  15. courses.forEach(value => console.log(value));
  16. // es6
  17. var courses = new Set(["jQuery Basics"]);
  18.  
  19. courses.add("Node.js Basics");
  20. courses.add("jQuery Basics");
  21.  
  22. courses.forEach(value => console.log(value));
  23. console.log(courses.size);
  24. console.log(courses.has("java course"));
  25. console.log(courses.has("jQuery Basics"));
  26.  
  27. console.log(courses.delete("jQuery Basics"));
  28. console.log(courses.size);
  29. console.log(courses.has("jQuery Basics"));
  30.  
  31. courses.clear();
  32. console.log(courses.size);
  33.  
  34. for (let key of courses.keys()) console.log(key);
  35. for (let value of courses.values()) console.log(value);
  36. for (let [key, value] of courses.entries()) {
  37. console.log(`${key}: ${value}`);
  38. }
  39.  
  40. // Map和Set都为内部的每个键或值保持了强引用
  41. // 也就是说,假如你在一个集合内添加了某些dom元素,可能是被选中的checkbox元素
  42. // 如果一个DOM元素被移除了,回收机制无法取回它占用的内存
  43.  
  44. // ES6给了我们一个惊喜的解决方案:用WeakSet而非Set。和内存泄露说再见吧!
  45.  
  46. var contacts = new WeakSet();
  47. var andrew = {
  48. name: "Andrew",
  49. email: "andrew@teamtreehouse.com"
  50. }
  51. var dave = {
  52. name: "Dave",
  53. email: "dave@teamtreehouse.com"
  54. }
  55. contacts.add(andrew);
  56. contacts.add(dave);
  57. contacts.add(andrew);
  58.  
  59. console.log(contacts.has(andrew));
  60.  
  61. dave = {
  62. name: "Changed",
  63. email: "dave@teamtreehouse.com"
  64. }
  65.  
  66. console.log(contacts.has(dave));
  67.  
  68. // Map
  69. var andrew = {
  70. name: "Andrew",
  71. email: "andrew@teamtreehouse.com"
  72. }
  73. var mary = {
  74. name: "Mary",
  75. email: "mary@teamtreehouse.com"
  76. }
  77. var dave = {
  78. name: "Dave",
  79. email: "dave@teamtreehouse.com"
  80. }
  81. var kenneth = {
  82. name: "Kenneth",
  83. email: "kenneth@teamtreehouse.com"
  84. }
  85. var friendships = new Map();
  86. friendships.set(andrew, new Set([mary, dave]));
  87. friendships.set(mary, new Set([andrew, kenneth, dave]));
  88.  
  89. console.log(friendships.get(mary));
  90. console.log(friendships.get(andrew).has(kenneth));
  91. console.log(friendships.get(andrew).add(kenneth));
  92. console.log(friendships.get(andrew).size);
  93.  
  94. friendships.delete(andrew);
  95. console.log(friendships.has(andrew));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement