[英]How do I get all values in array of objects if hashMap has same key name
I have a JSON structure and code like below : 我有一个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);
}
From the above code,since there are same key names(affectedOn) in many elements, map eliminates all duplicates and prints only one in the output. 从上面的代码中,由于许多元素中都有相同的键名(affectedOn),因此map消除了所有重复项,并且在输出中仅打印了一个。 Is there a way to print the key as string and value as array of objects without eliminating the ones with the same key name.
有没有一种方法可以将键以字符串和值的形式显示为对象数组,而不必消除具有相同键名的键。 Thanks in advance.
提前致谢。
It seems like you just want to filter the lossesOccurred array to pull out the ones that were human losses. 似乎您只想过滤lossOccurred数组以提取那些人为损失的数组。
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" } }, { "type": "physicalDamage", "affectedOn": "NOT humans", "quantity": 250, "reliefFund": 50000, "location": { "district": "thanjavur", "villageName": "madukkur", "pincode": "614903" } } ] }; const humanLosses = villages.lossesOccured.filter(loss => loss.affectedOn == 'humans'); console.log(humanLosses);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.