ES6(7)map结构

// Map()可以接收一个二维数组,二维数组中取arr[][0]为key,arr[][1]为value,多余的数组元素会被忽略
let map = new Map([[1,20]]);
console.log(map)
// Map(1) {1 => 20}
let map1 = new Map([[1,20,30]]);
console.log(map1)
// Map(1) {1 => 20}

// Map()可以接收null作为参数
let map2 = new Map(null);
console.log(map2)
// Map(0) {}

// Map()可以接收undefined作为参数
let map3 = new Map(undefined);
console.log(map3)
// Map(0) {}
let smap = new Map();
// set设置Map值
smap.set("one",1);
// get获取Map键对应的值
console.log(smap.get("one"))
// 应用场景
function eToC(str){
    // 实例化一个Map
    let wmap = new Map();
    // 使用实例化的Map存储具有对应关系的数据
    wmap.set("Mon","星期一");
    wmap.set("Tue","星期二");
    wmap.set("Wed","星期三");
    wmap.set("Thur","星期四");
    wmap.set("Fri","星期五");
    wmap.set("Sat","星期六");
    wmap.set("Sun","星期日");
    // 根据查询字符串,返回对应数据
    return wmap.get(str);
}

// 直接调用
console.log(eToC("Thur"));   // "星期四"
// 获取当前时间后调用
let nowDate = (new Date()).toString();
console.log(nowDate)
let end = nowDate.indexOf(" ");
let week = nowDate.slice(0,end);
console.log(eToC(week));    // "星期三"
function ack(str){
    let ack_map = new Map();
    ack_map.set("你好","你好啊!");
    ack_map.set("今天天气真不错","是啊,很适合出门!");
    ack_map.set("吃饭了没","还没呢,你呢?");
    ack_map.set("吃啦","我还有点事,先走了,拜拜!!");
    ack_map.set("没吃呢","那赶快去吃吧,我还有点事,先走了,拜拜!!");
    // 能匹配到就返回
    if(ack_map.get(str)) return ack_map.get(str);
    // 匹配不到就返回一个提示
    else return "对不起,你说的话我听不懂"
}

console.log(ack('你好'))
// 出现次数
let data = [
    {id: "2a0398605f1c160f0072498e5f4942e6", region: "茂名"},
    {id: "9bf625a55f1c1616006bed846372e6e3", region: "电白"},
    {id: "f47f682c5f1c163f008839ef2a343440", region: "茂名"},
    {id: "3d23c0a05f1c1681008a5b3a0b8bb446", region: "茂名"},
    {id: "f47f682c5f1c168c00883c273a954b1e", region: "茂南"},
    {id: "08e51e265f1c16910070c8117bbe476c", region: "茂名"},
    {id: "15d399db5f1c16ef0086f16b2a83a752", region: "茂名"},
    {id: "08e51e265f1c1b340070e7675a7c02df", region: "茂名"},
    {id: "9bf625a55f1c1b40006c0e721d7a7690", region: "高州"},
    {id: "9bf625a55f1c1b44006c0e916570035a", region: "高州"},
    {id: "3d23c0a05f1c1b52008a840d3b62a411", region: "高州"},
    {id: "2a0398605f1c1b5600726d490bf434c9", region: "化州"},
]
// let result = {};
// data.forEach(function (ele, i) {
//     if (result[ele.region] === undefined) {
//         result[ele.region] = 1;
//     } else {
//         result[ele.region]++;
//     }
// });
// console.log(result);
let result = new Map()
data.forEach(item => {
    if (result.has(item.region)) {
        let m = result.get(item.region)
        m++
        result.set(item.region, m)
    } else {
        result.set(item.region, 0)
    }
})
// console.log(result.entries())
result.forEach(function (value, key, map) {
    //value和key就是map的key,value,map是result本身
    console.log(value)
    console.log(key)
    console.log(map)
});

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值