首页 > 解决方案 > 当值应该是Javascript中的列表时如何在地图中设置/添加键值对

问题描述

我正在通过一个键值对进行映射,它们是:

a => a1
a => a2 
a => a3

b => b1
b => b2 
b => b3

c => c1
c => c2 
c => c3

现在我有一张地图:

const myobject = new Map()

我需要在我的地图中设置上面的数据,使每个键都有一个类似于列表的值:

a => list[a1, a2, a3] 
b => list[b1, b2, b3] 
c => list[c1, c2, c3] 

这是实际的代码:

const serviceResponses = new Map();
await Promise.all(allPromise.map(promises => {
   promises.then(promise => promise.map(([stateName, item]) => {
            // below is the part I am trying to set stateName (string)  and 
            // result (it should be an array) into serviceResponses which is a 
            // map. note: result always has the same number of items. in this 
            // example the number of items is 3, but it can be any number. 
            item[0].then(result => {
                        serviceResponses.set(stateName, result);
                });
                return serviceResponses;
           }));

我浏览了 Immutablr.js api 文档,并且已经尝试过 setIn、set、MergeIn、MergeDeep。谢谢您的帮助

标签: javascriptmergeimmutable.js

解决方案


来自 MDN

如果您纯粹想知道如何设置值,只需执行以下操作:

myobject.set('a', [a1, a2, a3]);

推荐阅读