(精华)2020年7月3日 JavaScript高级篇 ES6(Map数据结构)

    技术2024-09-27  53

    Map是什么

    // map??? // es6 新提出的一种引用类型的数据结构 类似于对象 // 字符创-》值 值-》值

    声明Map数据结构

    const map = new Map() const o = {p:'hello'} // 相当于键 key map.set(o,'content') // var a = {} a.name = '张三' a.name console.log(map.get(o));

    证明是引用数据类型

    // null typeof null const map = new Map() console.log(map instanceof Map); // true console.log(Object.prototype.toString.call(map) === '[object Map]');

    接收数组作为参数

    const map = new Map( [ ['name','张三'], ['age',18] ]) console.log(map.get('name')); // 张三 console.log(map.get('age')); // 18 // map 是数组的方法 Map 是es6新提出的一种新的 引用类型的数据结构 const m = new Map( [ [123,'abc'], ['a',{x:1,y:2}], [3>1,666] ] ) console.log(m.get(true)); // 666 // 404 Not found 500 InterError 404和500 都是数值 let errors = new Map([ [404,'Not found'], [500,'InterError'] ]) // 注意 对象作为键名 传输的是地址 // let m1 = new Map([ // [123,'abc'], // [{x:1},'cdf'] // ]) // console.log(m1.get({x:1})); // undefined let obj1 = {x:1} let m1 = new Map([ [123,'abc'], [obj1,'cdf'] ]) console.log(m1.get(obj1)); // cdf

    Map接收数组作为参数的本质

    // 为什么 接收一个二元数组 key value的形式 就可以通过 map.get()获取到值呢 const array = [ ['name','张三'], ['age',18] ] const map = new Map() array.forEach( ([key,value])=>map.set(key,value) )

    Map参数的扩展

    // 具有迭代器 iterator 接口 每个成员都是双元素的数组的数据结构 都可以当做map构造函数的参数
    Processed: 0.013, SQL: 9