Map的使用

map 和 set 都是新类型 ,map的形式是一组键值对的结构,具有极快的查找速度。

初始化Map需要一个二维数组,或者直接初始化一个空Map
 

new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);  // 内部是二维数组
m.get('Michael'); // 95


// 或者 直接new Map()

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

new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); 打印出来的结果类似于{键 =>值,键 =>值}

先来搞懂map的各种使用

1 . 先转化二维数组 

        Object.entries() 可以将对象转化为数组,每一个键值对作为数组里的两个值 [key, value]

console.log(
  Object.entries({
      label: 'xxxxxx',
    }
  )
)
 // [['label','xxxxxx']]


console.log(
  Object.entries({
      label: 'xxxxxx',
      aaa: 'bbbb',
    }
  )
)
// [['label','xxxxxx'],['aaa','bbbb']]



const real = {
1: 'q',
2: 'b',
3: 'c'}

console.log(
  Object.entries({
  	 enabled: {
      label: 'xxxxxx',
      value: false,
      key: 'enabled',
    },
    aaaa: {
      label: 'aaaaa',
      value: [1,1].map((v, i) => real[i + 1])
      ,
      key: 'aaaaa',
    },
  })
)
// [['enabled',{label: 'xxxxxx',value: false,key: 'enabled'}],
    ['aaa',{label: 'aaaaa',value: ['q', 'b'],key: 'aaaaa',}]
   ]

2. new Map 得到键值对,new map(二维数组)

console.log(new Map(Object.entries({
  	 enabled: {
      label: 'xxxxxx',
      value: false,
      key: 'enabled',
    },
    aaaa: {
      label: 'aaaaa',
      value: [1,1].map((v, i) => real[i + 1])
      ,
      key: 'aaaaa',
    },
  }))

===================================================================

console.log(new Map([["enabled",{ label: "xxxxxx", value: false, key: "enabled" }], ["aaaa",{ label: "aaaaa", value: ["q", "b"], key: "aaaaa" }]]))

3. 如果你需要拿到值 去做一些数据处理可以用 

  1. Map.prototype.values()
const filter = new Map(Object.entries({
  	 enabled: {
      label: 'xxxxxx',
      value: false,
      key: 'enabled',
    },
    aaaa: {
      label: 'aaaaa',
      value: [1,1].map((v, i) => real[i + 1])
      ,
      key: 'aaaaa',
    },
  }))

filter.values()

 
// 得到 
{{label: 'xxxxxx',
      value: false,
      key: 'enabled'
     },
     {
      label: 'aaaaa',
      value: ['q','a'],
      key: 'aaaaa',
     }
   }

 4.可以解构放在数组里进行遍历

[...filter.values()]

// [{...}, {...}]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值