javascript - 从数组返回键值对
问题描述
我正在尝试从数组中返回键值对。请参阅下面的屏幕截图。
在这种情况下,我在 feature_contributions 中有许多属性(TITANIC.EMBARKED_CONTRIBUTION、TITANIC.FARE_CONTRIBUTIONS 等)。我想遍历每个属性并返回键、值对,例如(对于 TITANIC.EMBARKED_CONTRIBUTION C 0.02789997960547538、Q 0.023986753511113696 等)。
我的最终结果应该是所有键值对的列表,如下所示:
C 0.02789997960547538
Q 0.023986753511113696
S -0.09335021246545774
(7.55, 7.854] -0.0755071986
(7.854, 8.05] -0.0699985221
等等。
使用 forEach 循环我可以访问该属性,但我很难返回其中的键和值。我还尝试使用一个 for 循环来带回属性名称。感谢任何帮助。
record.feature_contributions.forEach((obj) => console.log(obj));
for (let value of Object.values(record.feature_contributions)) {
console.log(value);
}
解决方案
试试下面的代码:
const contributions = record.feature_contributions
.flatMap((obj) => Object.values(obj))
.flatMap((contribution) => Object.entries(contribution));
正如我从您发布的屏幕截图中看到的那样,您有一个嵌套结构,这就是需要第一个 flatMap 的原因。这为您提供了一个贡献对象数组。Object.entries()
从中,您可以使用该函数提取键值对。
对此样本数据进行了测试:
const record = {
feature_contributions: [
{
"TITANIC.EMBARKED_CONTRIBUTION": {
C: 0.02,
Q: 0.02,
S: -0.09
}
},
{
"TITANIC.FARE_CONTRIBUTION": {
key1: -0.07,
key2: -0.06
}
}
]
};
推荐阅读
- javascript - 添加新控件后传单地图不起作用
- elasticsearch - JMeter 不会写入响应数据
- android - 浮动操作按钮未显示在 Android 协调器布局中
- c - 连接字符串的函数中的 Valgrind 内存泄漏
- c - 对于也在同一个 C 文件中定义的变量,是否与关键字“extern”冲突?
- c - C中的sqrt函数不返回确切值
- python - 编程新手,使用 for 循环帮助矩阵求和
- botframework - 每当用户卸载机器人并且机器人仅安装在个人范围内时,是否有任何方法可以获取用户详细信息?
- c# - 如何通过更改键从 JSON 中删除 JSON 对象/令牌
- mysql - 重力形式聚合查询