带有新密钥/值对的prepend地图

问题描述 投票:0回答:3

如何将一个键/值对预到JavaScript Map对象的开头?

var fields = new Map([ ['product_type', { value : 'PRODUCT' }], ['supplier_product_type', { value : 'INTERNAL' }] ]);
我想在地图的开头添加一个新键

[ ['new_key', { value : 'new value' }], ['product_type', { value : 'PRODUCT' }], ['supplier_product_type', { value : 'INTERNAL' }] ]

我不相信这是可能的。根据MDN的规格(
javascript
3个回答
3
投票
) 。

一种实现这一目标的方法可能是:

0
投票
var data = new Map(); data.set('b', 2); data.set('c', 3); var prependData = new Map(); prependData.set('a', 1); prependData.set('z', 26); var fullData = new Map([...prependData, ...data]); // Check content Array.from(fullData.entries())

或更接近您的问题:
var fields = new Map([
    ['product_type', {
        value : 'PRODUCT'
    }],
    ['supplier_product_type', {
        value : 'INTERNAL'
    }]
]);

fields = new Map([['new_key', {
        value : 'new value'
    }], ...fields])

// Check content
Array.from(fields.entries())

请注意,这样做会遭受绩效罚款。

,也请检查以下线程:
简单的方式合并ES6地图/集合?

在记录的

-3
投票
here

javaScript映射对象是一个未分类的映射。项目顺序是通过插入(但必须被视为随机)。 如果您需要一张分类的地图,则可以自己实施或拿起准备使用lib这样的lib的地图。

© www.soinside.com 2019 - 2024. All rights reserved.