如何向javascript映射中的特定键添加值?
我正在寻找一种解决方案,将多个值添加到地图中的同一个键 要求如下:如何向javascript映射中的特定键添加值?,javascript,node.js,Javascript,Node.js,我正在寻找一种解决方案,将多个值添加到地图中的同一个键 要求如下: objs = new Map<string,obj>() objs.set(obj.name,obj) 因此,我根据名称设置值。因为我正在尝试在地图中设置值,所以重复键将覆盖笔键的值。 现在我想将复制键的值附加到现有键上。有没有办法用javascript实现它 我期待的结果如下: [pen,[{pen.red,2},{pen,blue,3}]],[pencil,{pencil,yellow,1}] 有人能帮我吗?
objs = new Map<string,obj>()
objs.set(obj.name,obj)
因此,我根据名称设置值。因为我正在尝试在地图中设置值,所以重复键将覆盖笔键的值。
现在我想将复制键的值附加到现有键上。有没有办法用javascript实现它
我期待的结果如下:
[pen,[{pen.red,2},{pen,blue,3}]],[pencil,{pencil,yellow,1}]
有人能帮我吗?理想情况下,您遇到的不是问题,因为
地图的键是唯一的
要附加您可以做的是,累加您的对象并在最后设置它
像这样的
let obj = new Map();
let objToInsert = { ...add all the objects possible here };
obj.set(name, objectToInsert);
这样,您就可以在其中列出具有多个对象的关键帧
如果您正在使用一些循环并在以后添加项目,您也可以尝试类似的方法
let obj = new Map();
let name = "parent";
let objToInsert = { test: "value" };
obj.set(name, objectToInsert);
someArray.forEach((_, index) => {
obj.set(name, { ...obj.get(name), [index]: "test" });
});
这意味着您必须从地图中获取项目
,并将其与新数据一起再次插入以附加
希望有帮助您需要检查是否有带有所需键的条目
。检查是否是数组,如果不是创建数组,则添加新值并保存它
let existingEntry = objs.get(obj.name)
if (!existingEntry) {
objs.set(obj.name, [obj])
} else {
if (!Array.isArray(existingEntry)) { //this may not be needed if you have full control over the map
existingEntry = [existingEntry]
}
existingEntry.push(obj)
objs.set(obj.name, existingEntry)
}
要将结果作为数组或映射吗?
let existingEntry = objs.get(obj.name)
if (!existingEntry) {
objs.set(obj.name, [obj])
} else {
if (!Array.isArray(existingEntry)) { //this may not be needed if you have full control over the map
existingEntry = [existingEntry]
}
existingEntry.push(obj)
objs.set(obj.name, existingEntry)
}