(ES6以上以及TS) Map對象轉(zhuǎn)數(shù)組

const map = new Map();
map.set('1', 'one');
map.set('2'. 'two');

// 獲取map對象的value數(shù)組
Array.from(map).map(item => item[1]);
// ['one', 'two']

我們看看這段代碼發(fā)生了什么
Array.from執(zhí)行map對象后返回一個二維數(shù)組,數(shù)組元素是map的鍵值數(shù)組,長度為2

Array.from(map); // [['1', 'one'], ['2', 'two']]

所以要是同樣的方法用下面段可以獲取map對象的key數(shù)組

Array.from(map).map(item => item[0]);  // ['1', '2']

二次更新

空閑時間又對map對象嘗試另一種方式

基于map對象提供的values()函數(shù)
values()返回一個MapIterator對象,可以調(diào)用values().next()方法依次獲取value值,一次只能獲取一次, 這里就不演示例子了,貼上MDN介紹網(wǎng)站 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/values
這種方式可以直接獲取map對象的value數(shù)組

Array.from(map.values()) 
// ['one', 'two']

map對象還提供了keys()方法
同樣的下面這段代碼可以獲取map對象的key數(shù)組

Array.from(map.keys())
// ['1', '2'] 

三更

發(fā)現(xiàn)map對象也支持在數(shù)組中使用擴展運算符

更直觀簡潔的表達方式

[...map.values()]  // ['one', 'two']
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容