如何在 JavaScript 中快速获取 Map 对象的长度

开发 前端
为了在 JavaScript 中获取Map的长度,我们使用它的size属性,例如 console.log(map.size)。

为了在 JavaScript 中获取Map的长度,我们使用它的size属性,例如 console.log(map.size)。

const map = new Map();
map.set('user1', 'John');
map.set('user2', 'Kate');
map.set('user3', 'Peter');


// 👇 Get length of map
console.log(map.size); // 3

Map size()、set() 和 delete() 方法

Map 对象的size属性存储对象中的键值对。

当 set() 方法添加元素并 delete() 删除它们时,size 属性会相应更改。

当我们使用 set() 方法向地图添加一个新元素时,大小属性会增加 1。同样,当我们使用 delete() 从地图中删除一个元素时,大小会减少 1。

const map = new Map();
map.set('user1', 'John');
console.log(map.size); // 1


map.set('user2', 'Kate');
console.log(map.size); // 2


map.delete('user1');
console.log(map.size); // 1

Map size与Array length

当然,映射和数组有不同的用途,但每个都有一个属性,该属性给出了它存储的项目的长度、数组的长度和映射的大小。

两者之间的一个关键区别是您可以直接更改数组的长度属性。

const arr = [];


arr.push('Pat');
arr.push('Matt');


console.log(arr.length); // 2


// 👇 Array length changed
arr.length = 1;


console.log(arr.length); // 1

但是你不能对地图做同样的事情:

const map = new Map();


map.set('user1', 'Pat');
map.set('user2', 'Matt');


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


map.size = 5;


// 👇 length can't be modified directly
console.log(map.size); // 2

正如我们之前看到的,您只能使用 set() 和 delete() 等方法更改大小。

当您直接将 Array 长度更改为较小的值时,元素会被切掉。

const arr = ['Pat', 'Matt'];


// 👇 Length decreased directly
arr.length = 1;


// No more 'Matt'
console.log(arr); // ['Pat']

另一方面,当您直接将数组长度更改为更大的值时,会从数组末尾添加空占位符元素:

const arr = ['Pat', 'Matt'];


// 👇 Length increase directly
arr.length = 3;


// Empty item added
console.log(arr); // [ 'Pat', 'Matt', <1 empty item> ]

虽然这可行,但我建议 Array splice() 从数组中删除元素,这样您就可以更好地控制删除并可以访问已删除的元素。

使用 splice() 您可以设置删除的起始索引、要删除的元素数量以及应该插入到它们位置的新元素。

const arr = ['Pat', 'Matt'];


// Delete 1 element at index 1 (2nd element)
const deleted = arr.splice(1, 1);


console.log(deleted); // ['Matt']


const arr2 = ['Pat', 'Matt'];
// Delete 1 element at index 1 (2nd element) and insert 'John' at index 1


const deleted2 = arr2.splice(1, 1, 'John');
console.log(deleted2); // ['Matt']

使用 clear() 方法清除地图

Map clear() 方法的作用从它的名字中应该很明显; 它清除所有元素的地图:

const map = new Map();


map.set('user1', 'John');
map.set('user2', 'Kate');
map.set('user3', 'Peter');


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


map.clear();


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

要点总结

  • 要在 JavaScript 中获取地图的长度,请使用Map对象的 size 属性。
  • 当您使用 set()、delete() 或 clear() 添加或删除元素时,size会更新。
  • 与数组不同,您不能直接更改Map的size。


责任编辑:华轩 来源: web前端开发
相关推荐

2024-09-03 10:06:43

JavaMap项目

2015-07-06 09:59:56

JavaScript私有成员

2019-04-23 15:20:26

JavaScript对象前端

2024-04-11 08:30:05

JavaScript数组函数

2020-11-26 08:12:24

JavaScript对象数组

2014-05-07 09:20:45

Liunx快速阅读

2020-08-23 11:32:21

JavaScript开发技术

2021-03-18 10:45:02

JavaScript数组运算符

2021-03-11 23:43:20

JavaScript数组开发

2021-05-09 20:03:04

Wine 6.8 JavaScriptMap 对象

2020-06-17 08:48:22

JavaScript开发技术

2022-01-21 10:58:39

JavaScriptGolangPython

2024-10-22 15:10:49

2018-05-04 09:32:32

Linux快速监控rwho

2021-06-03 10:00:47

JavaScript 前端数克隆对象

2018-10-11 09:40:53

前端JavaScript编程语言

2021-03-26 23:41:19

JavaScript对象开发

2021-10-21 18:47:37

JavaScript面向对象

2020-03-10 10:45:06

GIMP新画笔Linux

2011-03-21 12:41:41

JavaScript
点赞
收藏

51CTO技术栈公众号