【发布时间】:2017-12-31 16:46:37
【问题描述】:
我正在尝试遍历一个内部有嵌套对象的对象,以便我可以使用这些值。
该对象可以在下面代码区域中的我的状态中找到。我需要使用以下内容,以便我可以在我的卡中使用它,如下所示render()
我使用了来自 lodash 的 _.mapValues,我能够将 color 和 avg 数据分开,但是我无法访问 avg 数据以便我可以使用它。
注意:平均数据中的键总是在变化,所以我不能使用正常的方式来访问数据:
例如,value.avg[key] 这给了我undefined
请检查此Example Link 以进一步理解我的意思,并在示例中检查一次控制台
我需要在我的卡中使用的数据才能呈现
- 颜色名称“红色”
- 来自 avg 对象的值
this.state = {
example: {
red: {
avg: {
"1514505600": 3,
"1514509200": 20,
"1514512740": 15,
"1514516280": 26
}
},
green: {
avg: {
"1514505600": 51,
"1514509200": 315,
"1514512740": 36,
"1514516280": 34
}
},
blue: {
avg: {
"1514505600": 1,
"1514509200": 16,
"1514512740": 14,
"1514516280": 17
}
}
}
}
render() {
const data = this.state.example;
_.mapValues(data, function(value, key, object) {
console.log(value.avg);
console.log(key);
});
const card = (
<div>
<span style={{ fontWeight: "bold" }}>Please check the results in the console for more info</span>
<div>
<div>Colour name here: </div>
<div>Example > avg > value data here: </div>
</div>
</div>
)
return <div>
{card}
</div>
}
【问题讨论】:
-
我无法理解您的目标。您是否尝试将
state转换为特定格式,如果是,您会提供该格式的示例吗?或者您是否尝试循环遍历state的不同部分,如果是,您会提供您希望在该循环中可用的示例值吗? -
您是否要为每种颜色显示一张卡片?
-
@EricSimonton 我正在尝试遍历示例对象并访问(平均数据 24 值并使用颜色名称),以便我可以为每个名称制作一张卡片。这意味着将有 10 张卡片,因为这是当前存储在状态中的内容(这个数字可能会改变)
-
@Tom ^^^^^^^^^^
-
在下面我的回答中查看可行的解决方案。
标签: javascript reactjs iteration lodash