gpt4 book ai didi

javascript - 当 json 具有同名键时,new Map() 如何在 javascript 中工作

转载 作者:行者123 更新时间:2023-11-29 20:48:04 25 4
gpt4 key购买 nike

我有一个 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 lossesArray = villages.lossesOccured

let myMap = new Map()

lossesArray.forEach(loss => {
if(loss.affectedOn === "humans"){
myMap.set(loss.affectedOn,loss)
}
})

console.log(myMap)

初始化一个新的 map 并为其分配键值。关键是“受影响”。由于在许多元素中有相同的键名(affectedOn),map 消除了所有重复项并只打印一个。有没有办法打印所有键值,即使它具有相同的名称。提前致谢。

输出: Map

最佳答案

Map 具有键值对,类似于对象,并且每个 distinct 键都有一个值。 (如果你想使用键 k1k2,以及 k1 === k2,你调用 myMap.set(k1 然后是myMap.set(k2,那么k1赋的初始值会被覆盖。)

如果您想将输入数组中的所有内容 转换为Map,确保键唯一的一种方法是将键设为对象(彼此不会是===):

myMap.set({ key: loss.affectedOn }, loss);

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 lossesArray = villages.lossesOccured

const myMap = new Map();
lossesArray.forEach(loss => {
if (loss.affectedOn === "humans") {
myMap.set({ key: loss.affectedOn }, loss);
}
});

console.log(myMap);

关于javascript - 当 json 具有同名键时,new Map() 如何在 javascript 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53532504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com