var user = ['Alice', 'Emily', 'Kate'];
      console.log(user);
     var keys = user.keys();
for (var key of keys) {
  console.log(key);  // map.get(key)可得value值。
}
var values = user.values();
for (var value of values) {
  console.log(value);
}
var kao=[];
var entries = user.entries();
for ([key, value] of entries) {
  console.log(key, value);
let obj={idx:key, val:value, name:'promiss'+key};
  kao.push(obj);
}
console.log(kao);
//console.log('~',kao.get(0));
var k2=[];
kao.forEach(function(value, key) {
  //let obj={}
  console.log(key, value);
})
// 初始化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();
 
    console.log(m1);      // 返回Map  {"a" => "a1", "b" => "b2", "c" => "c3"}
    console.log(typeof(m1));  // object, Map仍属于 object
    console.log(m1 == m11)    // flase  虽然两个Map里面的值一样,但是是属于不同的object
    // 1. size属性,返回 Map的元素数
    console.log(m1.size);   // 3
    // 2. keys()  获取Map的所有key
    console.log(m1.keys());   // 返回 MapIterator {"a", "b", "c"}
    // 3. values()  获取Map的所有value
    console.log(m1.values()); // 返回 MapIterator {"a1", "b2", "c3"}
    // 4. entries() 获取Map所有成员  
    console.log(m1.entries());  // 返回 MapIterator {"a" => "a1", "b" => "b2", "c" => "c3"}
    // 5. forEach() 循环操作映射元素
    m1.forEach(function(value, key, map) {
      // value:  key对应的值,  
    // key: Map的key,(map参数已省略情况下,key可省略)
    // map:  Map本身,(该参数是可省略参数)
    console.log(value);     // key对应的值   a1  b2  c3
    console.log(key);     // key      a   b   c
    console.log(map);     // Map本身      Map Map Map
    });
    // 6. 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} 给已存在的键赋值会覆盖掉之前的值,  
console.log('m2~',m2);
    // 7. has()   检测是否存在某个key, 返回布尔值,有:true; 没有:false
    console.log(m2.has('a'));   // true
    console.log(m2.has('c'));   // false
    // 8. get()   获取某个key的值,返回key对应的值,没有则返回undefined  
    console.log(m2.get('a'));     // 11
    console.log(m2.get('c'));   // undefined
    // 9. delete()  删除某个key及其对应的value,返回布尔值,成功:true; 失败:false
    console.log(m2.delete('b'));  // true
    console.log(m2.delete('d'));  // false
 
    console.log(m2.get('b'));   // undefined, 因为b已经删除
    console.log('m2~',m2);
    // 10. clear()  清除所有的值,返回 undefined
    console.log(m1.clear());    // undefined
    console.log(m1);        // {}
     // 初始化Map需要提供一个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();
 
    console.log(s1);        // 返回 Set(3) {"a", "b", "c"}
    console.log(s2);        // 返回 Set(3) {"a", "b", "c"}
    console.log(typeof(s1));    // object
    console.log(s1 == s11);   // false
    console.log(s1 == s2);    // false
 
    // 1. size属性  返回Set的元素数
    console.log(s1.size);     // 3
 
    // 2. keys() 获取Set的所有key  
    console.log(s1.keys());   // 返回 SetIterator {"a", "b", "c"}
 
    // 3. values()  获取Set的值,返回结果和 keys()一样
    console.log(s1.values());   // 返回 SetIterator {"a", "b", "c"}
 
    // 4. entries() 获取Set所有成员,返回同keys()
    console.log(s1.entries());  // 返回 SetIterator {"a", "b", "c"}
 
    // 5. forEach() 循环操作集合元素  
    s1.forEach(function(v, k, s){ // v、k是集合的键,s是集合本身
    console.log(v);       //  a   b   c
    console.log(k);       //  a   b   c
    console.log(s);       // Set Set Set
    });
    // 6. 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"}  添加重复的值,会被排重掉,
 
    // 7. has() 查询集合中是否包含某个元素  返回布尔值 有:true; 没有:false
    console.log(s3.has('aa'));    // true
    console.log(s3.has('ff'));    // false  
    // 8. delete() 删除集合中的某个元素  返回布尔值
    console.log(s3.delete('aa')); // true
    console.log(s3.delete('ee')); // false
    console.log(s3);        // Set(1) {"bb"}
 
    // 9. clear()  清除集合的所有值 返回undefined
    console.log(s1.clear());    // undefined
 
    console.log(s1);        // Set(0) {}

js array map的更多相关文章

  1. js array map() 函数的简单使用

    语法: array.map(function(currentValue,index,arr), thisValue) currentValue:必须.当前元素的值 index:可选.当前元素的索引值 ...

  2. js Array Map and Set

    Array slice slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array: var arr = ['A', 'B', 'C', ' ...

  3. 兼容低版本JS的Array.map方法

    前几天去别的公司面试遇到个这样的问题,兼容IE7下的Array.map方法,一脸蒙蔽.后面回来查了下资料发现.Array.map方法是ECMA-262 标准中新添加的方法,在低版本的JS中是木有的. ...

  4. js Array 中的 map, filter 和 reduce

    原文中部分源码来源于:JS Array.reduce 实现 Array.map 和 Array.filter Array 中的高阶函数 ---- map, filter, reduce map() - ...

  5. js 数组map用法 Array.prototype.map()

    map 这里的map不是"地图"的意思,而是指"映射".[].map(); 基本用法跟forEach方法类似: array.map(callback,[ thi ...

  6. js模拟Map对象,实现key---value

    js模拟Map对象,实现key---value 根据java中map的属性,实现key----value保存 function Map() { var struct = function (key, ...

  7. 从Chrome源码看JS Array的实现

    .aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto } .crayon-line spa ...

  8. js Array 方法总结

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. JavaScript 对象Array,Map,Set使用

    for(int i = 0 :i < 3 ;i++ ){ //[重点说三遍] 在说明每个对象的用法之前,首先说明 JavaScript 对象的使用一定要注意浏览器的兼容性问题!尤其是IE的版本! ...

  10. 几种最常见的js array操作方法及示例

    1. 序言 操作array可谓前端最基础的工作,无论是从接口中取的数据,还是筛选数据,或者是添加按钮权限等等操作,array都是绕不开的东西.array的操作很多,初学者十分容易搞混,不是很熟练的情况 ...

随机推荐

  1. Vue3 企业级优雅实战 - 组件库框架 - 12 发布开源组件库

    前面使用了 11 篇文章分享基于 vue3 .Monorepo 的组件库工程完整四件套(组件库.文档.example.cli)的开发.构建及组件库的发布.本文属于这 11 篇文章的扩展 -- 如何发布 ...

  2. 你想知道的do{...}while(0)的作用,都在这里了

    0.引言         我们在嵌入式开发的过程中,经常可以碰到在一些宏定义或者是代码段中使用了do {...} while(0)的语句,从语义上理解,do {...} while(0)内的逻辑就只执 ...

  3. Android实现仿微信实时语音对讲功能|与女友游戏开黑

    与亲朋好友一起玩在线游戏,如果游戏中有实时语音对讲能力就可以拉进玩家之间的距离,添加更多乐趣.我们以经典的中国象棋为例,开发在线语音对讲象棋.本文主要涉及如下几个点: 在线游戏的规则,本文以中国象棋为 ...

  4. Os-hackNos-3

    Os-hackNos-3 目录 Os-hackNos-3 1 信息收集 1.1 端口扫描 1.2 后台目录扫描 1.2.1 目录分析 2 爆破后台登录页面 2.1 BP爆破 2.2 hydra爆破 3 ...

  5. 达标式减量策略又一例证(STRASS研究)

    标签: 类风湿关节炎; T2T策略; TNF抑制剂; 药物减停; STRASS研究 达标式减量策略又一例证(STRASS研究): RA维持期个体化减停TNF拮抗剂是可能的 电邮发布日期: 2016年1 ...

  6. (原创)【B4A】一步一步入门05:控件、公有属性、水平锚定、垂直锚定(控件篇01)

    一.前言 前面的教程,已经完整讲述了用B4A开发安卓APP从新建项目到编译发布的完整流程.从本篇开始,我们将会从B4A的细节处着手,一步一步掌握B4A. 从本篇开始的子系列为"控件篇&quo ...

  7. Django中admin的一些知识点

    Django中的Admin站点管理: 内容发布的部分由网站的管理员负责,包括查看.添加.修改.删除数据: Django项目中默认启用Admin管理站点:列表页选项, 编辑页选项, 重写模板. #准备工 ...

  8. vue2+ts 设计一个扑克牌比大小的游戏

    首先  

  9. Sptring cloud Alibaba Sentinel 实现熔断与限流

    随着微服务的流行,服务和服务之间的稳定性变得越来越重要. Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护服务的稳定性. 作用: 服务雪崩 服务降级 服务熔断 服务限 ...

  10. 四,redis6版本的使用部署

    继第三章(https://www.cnblogs.com/123456likun/p/13841540.html) 官网发布最新的6版本,有新的数据类型出现,给了小编我极大的动力,决定写几张关于最新的 ...