ES6新增数据类型map

51 阅读1分钟

作用

是一个数据集合,是一个很类似于对象Object的数据集合
Map存储的数据也是key/value形式, key可以是任意类型
Object的key只能是字符串

Object回顾

Object对象属性名是字符串类型, 值可以任意类型

function test1() {
			let obj = {
				name: 'jack',
				age: 18,
				say: function () {},
			}
		}

size,看map里面有几个元素

 <script>
       let map=new Map([
        ['name','jack'],
        [100,18],
       ])
       console.log(map)
       console.log(map.size)
 </script>

set添加元素

 <script>
       let map=new Map([
        ['name','jack'],
        [100,18],
       ])
       console.log(map)
       console.log(map.size)
 </script>

get获取元素

 <script>
       let map=new Map([
        ['name','jack'],
        [100,18],
       ])
       console.log(map)
       console.log(map.get('name'))
 </script>

delete删除元素

 <script>
       let map=new Map([
        ['name','jack'],
        [100,18],
       ])
       map.delete('name')
       console.log(map)
 </script>

has判断map里面是否有数据

<script>
       let map=new Map([
        ['name','jack'],
        [100,18],
       ])
       map.delete('name')
       console.log(map)
       let isHas=map.has('name')
       console.log('isHas',isHas)
</script>

map无需遍历

查找存储在map中的数据,可以不用遍历,根据key直接获取
value = map.get(key)
 <script>
       let map=new Map([
        ['name','jack'],
        [100,18],
       ])
        let name=map.get('name')
        console.log(name);
 </script>

foreach遍历

 <script>
       let arr = [
			{ name: '钢筋', value: 11 },
			{ name: '水泥', value: 12 },
			{ name: '混凝土', value: 13 },
			{ name: '加气砖', value: 14 },
		]
                //传统遍历foreach
                arr.forEach(item=>{
                    if(item.value==12){
                        console.log(item.name)
                    }
                })

    </script>

find遍历

 <script>
       let arr = [
			{ name: '钢筋', value: 11 },
			{ name: '水泥', value: 12 },
			{ name: '混凝土', value: 13 },
			{ name: '加气砖', value: 14 },
		]
                //find查找第一个满足条件的值
                let item=arr.find(item=>item.value==12)
                console.log(item.name);

    </script>

数组转map再使用map方法

<script>
       let arr = [
                    { name: '钢筋', value: 11 },
                    { name: '水泥', value: 12 },
                    { name: '混凝土', value: 13 },
                    { name: '加气砖', value: 14 },
		]
            let map=new Map()
            arr.forEach(item=>{
                map.set(item.value,item.name)
            })   
            console.log(map.get(11));
    </script>