【发布时间】:2019-05-01 12:59:12
【问题描述】:
我有一个 JSON 结构和如下代码:
const villages =
{
"lossesOccured":
[
{
"type": "destroyed",
"affectedOn": "humans",
"quantity": 120,
"reliefFund": 100000,
"location": {
"district": "thanjavur",
"villageName": "madukkur",
"pincode": "614903"
}
},
{
"type": "physicalDamage",
"affectedOn": "humans",
"quantity": 250,
"reliefFund": 50000,
"location": {
"district": "thanjavur",
"villageName": "madukkur",
"pincode": "614903"
}
}
]
}
const losses = villages.lossesOccured
const myMap = new Map()
const humanMap = new Map()
losses.forEach((data,index) => {
var keys = data.affectedOn
var objJSON = new Object();
for (i = 0; i < keys.length; i++) {
objJSON[keys] = data;
}
myMap.set(objJSON,data)
});
function extactLosses(){
myMap.forEach(loss => {
if(loss.affectedOn === "humans"){
humanMap.set(loss.affectedOn,[loss])
}
for (var [key, value] of humanMap) {
console.log(key , value);
}
从上面的代码中,由于在许多元素中有相同的键名(affectedOn),map 会消除所有重复项并在输出中仅打印一个。 有没有办法将键打印为字符串,将值打印为对象数组,而不会消除具有相同键名的对象。 提前致谢。
【问题讨论】:
-
你能澄清你在寻找什么输出吗?以您的输入为例,您期望结果是什么?
-
当然,我已经添加了预期输出的图像
标签: javascript json hashmap