zoukankan      html  css  js  c++  java
  • JS中的Map和Set实现映射对象

    使用iterable内置的forEach方法
    
    var a = ['A', 'B', 'C'];
    a.forEach(function (element, index, array) {
        // element: 指向当前元素的值
        // index: 指向当前索引
        // array: 指向Array对象本身
        alert(element);
    });
    Set与Array类似,但Set没有索引,因此回调函数的前两个参数都是元素本身:
    
    var s = new Set(['A', 'B', 'C']);
    s.forEach(function (element, sameElement, set) {
        alert(element);
    });
    Map的回调函数参数依次为value、key和map本身:
    
    var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
    m.forEach(function (value, key, map) {
        alert(value);
    });
    
    JS中参数不要求一致,可以需要几个写几个(当然多写就是undefined,而且参数名字可以随便瞎写【滑稽】)
    a.forEach(function (element, index, array,adsf) {
    // element: 指向当前元素的值
    // index: 指向当前索引
    // array: 指向Array对象本身
    console.log(element, index, array,adsf);
    });
    VM2066:5 a 0 ["a", "b", "c"] undefined
    VM2066:5 b 1 ["a", "b", "c"] undefined
    VM2066:5 c 2 ["a", "b", "c"] undefined
    
     
    
    for of循环:与java中的foreach类似:
    
    for (var x of a) {
        alert(x); // 'A', 'B', 'C'
    }
     
    
    JS的默认对象表示方式为{}键值对方式,但是键都是字符串,所以引用了Map
    
    var m = new Map([['micheal',99],['bob',90],['baobao',100]]);
    
    m.get('micheal');
    
    也可以这样:
    
    var m = new Map(); // 空Map m.set('Adam', 67); // 添加新的key-value m.set('Bob', 59); m.has('Adam'); // 是否存在key 'Adam': true m.get('Adam'); // 67 m.delete('Adam'); // 删除key 'Adam' m.get('Adam'); // undefined
    
    Set 与java中的list相似吧但是值不重复,类型也多变;
    
    add方法添加元素,
    
    var s = new Set([1, 2, 3, 3, '3']);
    s.add(4);s.delete(2);
    

      

    //空Map
    var m = new Map();
    // 添加新的key-value
    m.set('Adam', 67);
    m.set('Bob', 59);
    console.log(m)
    // 是否存在key 'Adam': true
    if(m.has('Adam')){
      console.log(m.get('Adam'))
    }
    m.delete('Adam'); // 删除key 'Adam'
    console.log(m.get('Adam'))
    console.log(console.log(new Map([[1, 'x'], [2, 'y'], [3, 'z']])))
    

      

  • 相关阅读:
    方法的重载;数组 (Java Day05)
    switch语句;for/while循环;死循环;跳转语句;嵌套循环;方法及方法的调用(Java Day04)
    运算符;键盘录入;分支结构(Java Day03)
    基础概念学习;常量;变量;编码表;数据类型转换(Java Day02)
    Java语言基本概述;入门案例学习;环境变量的配置;Eclipse安装(Java Day01)
    JVM内存模型
    java多线程对CountDownLatch的使用
    System.nanoTime()的使用
    this用法
    idea取消重复代码提醒的功能
  • 原文地址:https://www.cnblogs.com/dearxinli/p/7771275.html
Copyright © 2011-2022 走看看