angular - 是否可以从参数对象中的映射转换键值?
问题描述
我有一张地图,我在其中放置了这样的键值:
for (let controller of this.attributiFormArray.controls) {
attributiAttivitaMap.set(controller.get('id').value, { value: controller.get('valoreDefault').value, mandatory: controller.get('obbligatorio').value })
}
这是我设置后的地图:
0 : key: 10, value: {value: 200, mandatory: false}
1 : key: 102, value: {value: 300, mandatory: false}
好的,现在我的 porpuse 是创建一个这样的对象列表:
"valoriDefaultAttributiAttivita" : {
"10" : {"value" : "200", "mandatory": false},
"102" : {"value" : "300", "mandatory": false},
}
其中数字“10”、“102”是我地图的键。
我尝试了几种方法,但是当我尝试将它放入数组中时,它不允许我像属性一样设置我的键值。
let array: any[] = [];
for(let key of attributiAttivitaMap.keys()){
array.push({key: attributiAttivitaMap.get(key)});
}
我怎么能做到这一点?
解决方案
如果您的目标是获得相同的地图但以 js 对象的形式,您可以执行以下操作
const map = new Map<number, { value: number; mandatory: boolean }>();
map.set(10, { value: 200, mandatory: false });
map.set(102, { value: 300, mandatory: false });
const obj: Record<number, { value: number; mandatory: boolean }> = {};
map.forEach((val, key) => obj[key] = val);
或遍历地图条目
for(const [key, value] of map.entries()) {
obj[key] = value;
}
推荐阅读
- java - Firebase 实时数据库检索最后一个子数据
- json - For循环json谷歌脚本
- javascript - 如何在不知道其模型的情况下使用 sequelize 将 JSON 数组批量插入 mysql 数据库?
- python-3.x - 如何在 groupby 直方图上拟合泊松分布?
- sql - 从另一个 id 匹配的表中插入数据
- javascript - 邮件事件后未显示 PHP Mailer 自定义消息
- c# - HotChocolate 转换数据库中的数据?
- node.js - 从 NodeJs 中的另一个文件调用中间件方法
- laravel - Laravel 8 如何使用带有 UUID 主键的工厂播种?
- heroku - Heroku 不保留嵌套的 CRA node_modules 和构建文件夹