ES6基础语法(四) —— 数据集合-map

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q95548854/article/details/79082762

四、数据集合-map

·类似于对象,以键值对方式存储
·不同点:对象中键只能是字符串,map中可以为对象

//在对象中,键如果为一个对象,会直接将这个对象toString(),都会变成"[object Object]"字符串,所以"大海"能替换"天空"
    let obj1 = {a: 1}, obj2 = {b: 2}, obj = {};
    obj.name = '张三';
    obj[obj1] = '天空';
    obj[obj2] = '大海';
    console.log(obj); // {[object Object]:"大海, "name:"张三"}

    console.log(obj1.toString()); // [object Object]
    console.log(obj2.toString()); // [object Object]
    console.log(obj1.toString() === obj2.toString()); // true

//在map中,对象可以作为键
    let obj1 = {a: 1}, obj2 = {b: 2};
    const map = new Map([
        ['name', '张三'],
        [obj1, '今天天气很好'],
        [obj2, '适合敲代码'],
        [[1,2], 'hhh']
    ]);
    console.log(map); // Map(4) {"name" => "张三", {a: 1} => "今天天气很好", {b: 2} => "适合敲代码", Array(2) => "hhh"}

    console.log(map.size); // 4

1.set和get
    map.set('friends', ['赵六', '李七']).set(['dog'], '小花');
    console.log(map);

    console.log(map.get('name')); // 张三
    console.log(map.get(obj1)); // 今天天气很好

2.delete(返回boolean值)
    map.delete(obj1); 

3.has(返回boolean值)
    console.log(map.has(obj2));

4.clear-清空
    map.clear();
    console.log(map);

5.keys()-所有键 values()-所有值 entries()-所有键值
    console.log(map.keys());
    console.log(map.values());
    console.log(map.entries());

6.遍历
    map.forEach(function (value, index) {
        console.log(index + ':' + value);
    })

7.注意事项-两个对象永不相等
    map.set({}, '呵呵呵呵呵');
    map.set({}, '哈哈哈哈');

    console.log(map); // 上面两个都加入进去了
    console.log({} === {}); // false

猜你喜欢

转载自blog.csdn.net/q95548854/article/details/79082762