const map = new Map([['a', 1], ['b', 2], ['c', 3]]);
let lastEntry = [...map].at(-1);
console.log(lastEntry);
// or only get last key/value
let lastKey = [...map.keys()].at(-1);
let lastValue = [...map.values()].at(-1);
console.log(lastKey, lastValue);
但是,更有效的方法是只迭代条目并保留最后一个条目。
const map = new Map([['a', 1], ['b', 2], ['c', 3]]);
let entry; for (entry of map);
console.log(entry);
// Convert Map to an array and get the last item
const myArray = Array.from(myMap);
const lastItem = myArray[myArray.length - 1];
// Log the last item to the console
console.log(lastItem);
7条答案
按热度按时间kgqe7b3p1#
您可以将
Map
转换为一个条目数组,然后获取最后一个元素。但是,更有效的方法是只迭代条目并保留最后一个条目。
b5buobof2#
使用
Array.from()
方法将Map转换为数组,然后使用数组索引访问最后一项。你可以通过访问数组索引
[myArray.length - 1
来获取最后一项]xesrikrc3#
使用内置的
Map
,除了迭代条目并返回最后一个条目之外别无他法。但是,您可以扩展Map
,以便它可以记录自己的“历史”,例如:vlju58qv4#
y0u0uwnf5#
使用spread运算符将贴图转换为数组并使用
.pop
bakd9h0s6#
不,没有。Map不是一个有序的数据结构,因为它们支持索引访问-它们所拥有的只是一个确定的迭代顺序。如果你关心控制元素的顺序或通过索引访问它们,请使用数组(可能是除了Map之外)。
在优雅方面,我推荐一个接受迭代器的helper函数:
然后称之为
或
ljsrvy3e7#
您可以直接迭代Map,并使用
size
中的计数器来获取最后一对。