11-map.html 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <script>
  8. // 创建一个map类型的数据
  9. // ["name","zhagnsan"]
  10. var m = new Map([["zhangsan",18],["lisi",20],["wangwu",22]])
  11. // 获取某一个key的值
  12. console.log(m.get("zhangsan"))
  13. // 创建一个空的map
  14. var m = new Map()
  15. // 赋值 key value
  16. m.set("zhangsan",18)
  17. // 判断key是否存在
  18. console.log(m.has("zhangsan"))
  19. console.log(m.has("lisi"))
  20. console.log(m)
  21. // 删除key
  22. // m.delete("zhangsan")
  23. // // 获取一个不存在的key
  24. // console.log(m.get("zhangsan")) //undefined
  25. // Set
  26. var s = new Set()
  27. var s1 = new Set([1,2,3])
  28. console.log(s)
  29. console.log(s1)
  30. var s2 = new Set([1,2,3,3,'3'])
  31. console.log(s2)
  32. s2.add(4)
  33. console.log(s2)
  34. s2.delete(3)
  35. console.log(s2)
  36. // 迭代器
  37. var arr = [1,2,3]
  38. // ES6的新语法
  39. for(var i of arr){
  40. // 这里获取的是数组元素的值
  41. console.log(i)
  42. }
  43. for(var x of m){
  44. console.log(x)
  45. }
  46. for(var x of s1){
  47. console.log(x)
  48. }
  49. console.log("----------------")
  50. var arr1 = ['A','B','C']
  51. arr1.name = 'H'
  52. // 如果使用in 可能遍历出不一样的结果
  53. for(var i1 in arr1){
  54. console.log(i1)
  55. }
  56. // 此时用of遍历 会更加安全
  57. console.log("----------------")
  58. for(var i of arr1){
  59. console.log(i)
  60. }
  61. // 最好的方式 是使用内置的forEach
  62. // 会接收一个函数 每次迭代会自动回调此函数
  63. arr1.forEach(function(element,index,array){
  64. // element指当前元素的值 index指当前索引 array指数组对象本身
  65. console.log(`element=${element},index= ${index}`) // 模版字符串 反引号 1左边的位置~打出来的
  66. })
  67. m.forEach(function(value,key,map){
  68. // 回调参数依次为 value值 key map本身
  69. console.log(`value=${value},key=${key}`)
  70. })
  71. s1.forEach(function(element,sameElement,set){
  72. // 回调函数 前两个参数都是元素本身 最后一个是set本身
  73. console.log(`element=${element}`)
  74. })
  75. // 可以简写
  76. // JS的函数调用 不要求参数必须一致
  77. arr1.forEach(function(element){
  78. // element指当前元素的值 index指当前索引 array指数组对象本身
  79. console.log(`element=${element}`) // 模版字符串 反引号 1左边的位置~打出来的
  80. })
  81. </script>
  82. </head>
  83. <body>
  84. Hi Map
  85. </body>
  86. </html>