# Map

Map 对象保存键值对。任何值(对象或者基本类型)都可以作为一个键或一个值。

# 实例属性

# size

Return value

Map 对象的成员数量。

const map1 = new Map<string,string>();
map1.set('a', 'alpha');
map1.set('b', 'beta');
map1.set('g', 'gamma');
console.log(map1.size);
// expected output: 3

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# 实例方法

# clear()

移除 Map 对象中的所有元素。

Return value

Type
void
const map1 = new Map<string,string>();
map1.set('bar', 'baz');
map1.set(1, 'foo');
console.log(map1.size);
// expected output: 2
map1.clear();
console.log(map1.size);
// expected output: 0

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# delete(key)

用于移除 Map 对象中指定的元素。

Parameters

name type required description
key K YES 要从 Map 对象中删除的元素的键。

Return value

Type description
boolean 如果 Map 对象中的元素存在并已被移除,则为 true;如果该元素不存在,则为 false。
const map1 = new Map<string,string>();
map1.set('bar', 'foo');
console.log(map1.delete('bar'));
// expected result: true
// (true indicates successful removal)
console.log(map1.has('bar'));
// expected result: false

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# forEach(callbackfn, thisArg?)

按照插入顺序依次对 Map 中每个键/值对执行一次给定的函数。

Parameters

name type required description
callbackfn (value : V, key : K, map : Map<K, V>) => void YES Map 中每个元素所要执行的函数。它具有如下的参数: value: 每个迭代的值。 key: 每个迭代的键。 map: 正在迭代的 Map。
thisArg any NO 在 callbackfn 执行中使用的 this 的值。

Return value

Type
void

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# get(key)

从 Map 对象返回指定的元素。如果与所提供的键相关联的值是一个对象,那么你将获得该对象的引用,对该对象所做的任何更改都会有效地在 Map 对象中修改它。

Parameters

name type required description
key K YES 从 Map 对象返回的元素的键。

Return value

Type description
V | null 与指定键相关联的元素,如果键在 Map 对象中找不到,则返回 undefined。
const map1 = new Map<string,string>();
map1.set('bar', 'foo');

console.log(map1.get('bar'));
// expected output: "foo"

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# has(key)

返回一个布尔值,指示具有指定键的元素是否存在。

Parameters

name type required description
key K YES 用于测试 Map 对象中是否存在的元素的键。

Return value

Type description
boolean 如果 Map 对象中存在具有指定键的元素,则返回 true;否则返回 false。
const map1 = new Map<string,string>();
map1.set('bar', 'foo');

console.log(map1.has('bar'));
// expected output: true

console.log(map1.has('baz'));
// expected output: false

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# set(key, value)

为 Map 对象添加或更新一个指定了键(key)和值(value)的(新)键值对。

Parameters

name type required description
key K YES 要添加到 Map 对象的元素的键。该值可以是任何数据类型(任何原始值或任何类型的对象)。
value V YES 要添加到 Map 对象的元素的值。该值可以是任何数据类型(任何原始值或任何类型的对象)。

Return value

Type description
this Map 对象
const map1 = new Map<string,string>();
map1.set('bar', 'foo');

console.log(map1.get('bar'));
// expected output: "foo"

console.log(map1.get('baz'));
// expected output: null

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

注意:由于Map的key是唯一的,给同一个key多次set值时,会用新值替换老值。

const map1: Map<string,string> = new Map(); //定义一个map,key为string类型,value也是string类型
map1.set('key1', "abc");
map1.set('key1', "def");
console.log(map1.get('key1')) //返回 def

# 常见操作

  • 创建map
let map = new Map<string,any>()
map.set("name","zhangsan")
map.set("age",12)
//Map(2) {"name":"zhangsan","age":12}
console.log(map)
  • 通过key访问map元素
let map = new Map<string,any>()
map.set("name","zhangsan")
map.set("age",12)
let nameVal = map['name']
//zhangsan
console.log(nameVal)
  • 遍历map

let map = new Map<string,any | null>()
map.set("name","zhangsan")
map.set("age",12)

// 遍历函数 1
map.forEach(function(value:any | null){
    console.log(value)
})
// 遍历函数 2
map.forEach(function(value:any | null,key:string){
    console.log(key)
    console.log(value)
})
// 遍历函数 3
map.forEach(function(value:any | null,key:string,map: Map<string,any | null>){
    console.log(value)
    console.log(key)
    console.log(map)
})