如何将一个键/值对预到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的规格(
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地图/集合?在记录的
javaScript映射对象是一个未分类的映射。项目顺序是通过插入(但必须被视为随机)。 如果您需要一张分类的地图,则可以自己实施或拿起准备使用lib这样的lib的地图。