gpt4 book ai didi

javascript - 使用 forEach 的 Object.entries 映射对象数组返回未定义,除非使用 console.log

转载 作者:行者123 更新时间:2023-11-30 08:23:56 25 4
gpt4 key购买 nike

我有一个包含键值对的对象数组,我想在每个对象中找到一个特定的键并返回值。

数组示例:

filterCounties=[
{
"StateName": "Delaware",
"CountyName": "Kent",
"FIPS": 10001,
"Eligibles_2017": 33292,
"Eligibles_2018": 34938,
"Penetration_2017": 0.107,
"Penetration_2018": 0.123
},
{
"StateName": "Delaware",
"CountyName": "New Castle",
"FIPS": 10003,
"Eligibles_2017": 94030,
"Eligibles_2018": 98080,
"Penetration_2017": 0.128,
"Penetration_2018": 0.164
},
{
"StateName": "Delaware",
"CountyName": "Sussex",
"FIPS": 10005,
"Eligibles_2017": 61964,
"Eligibles_2018": 65990,
"Penetration_2017": 0.082,
"Penetration_2018": 0.097
},
{
"StateName": "Delaware",
"CountyName": "Pending County Designation",
"FIPS": 10,
"Eligibles_2017": 9,
"Eligibles_2018": 0,
"Penetration_2017": 0,
"Penetration_2018": 0
}
]

我正在寻找的关键是 Penetration_2018 - 我可以使用以下代码并使用 console.log 输出值

const mapTest = new Map(
Object.entries(filterCounties).forEach(([key, value]) =>
console.log((key, value["Penetration_2018"]))
)
);

这将输出值: console.log output

但是如果我分配给一个变量然后记录变量

 const mapTest = new Map(
Object.entries(filterCounties).forEach(
([key, value]) => (key, value["Penetration_2018"])
)
);
console.log(`This is mapTest ${mapTest}`);

我得到没有值的 [object Map] - 我认为当使用箭头函数时,返回是隐式的?

输出图像 - 有或没有字符串连接 enter image description here

我最终想提取这些值以将它们分配给 Victory BarChart 的 Y 轴。感谢您提供任何见解/指导。

最佳答案

几个问题:

  • forEach 总是返回 undefined。您需要改用 map
  • (key, value["Penetration_2018"]) 不是元组,而是逗号运算符表达式,结果为 value["Penetration_2018"] 的值。请改用方括号表示法。
  • Map 在转换为字符串时没有任何有用的表示。您需要将其转换为数组或其他内容以获得更有用的字符串表示形式:

代码:

const mapTest = new Map(
Object.entries(filterCounties).map(
([key, value]) => [key, value["Penetration_2018"]]
)
);
console.log(`This is mapTest ${JSON.stringify([...mapTest])}`);

对于数组,更传统的做法是直接在数组上应用 map,而你无论如何都需要一个 Map 是个谜。如果您想要唯一值,请使用集合:

const uniques = [...new Set(filterCounties.map(value => value["Penetration_2018"]))];
console.log(`This is uniques: ${uniques}`);

关于javascript - 使用 forEach 的 Object.entries 映射对象数组返回未定义,除非使用 console.log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48747444/

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