让我非常迅速地解释这一点,当我从数据库中获取数据时,有一个父对象,并且内部有一个对象数组,我要实现的目标是编写正确的路径,以便可以访问特定项目在数据库中。
接收数据时,我将像这样存储两个变量:
for (let a in obj) {
list.push(obj[a]);
keys.push(a);
}
this.setState({
list: list,
keys: keys,
});
执行此代码将打印以下内容:
console.log(this.state.keys[index]);
HZlgUZ21vKbungnxaxDJXrTUr2z1
这总是返回确切的父对象id
但是问题是我无法访问嵌套项目的索引:
console.log(this.state.list[index]);
对象{-LORYsI9mLP8mu_2BTKS:对象,-LORZVOq8SMUgTOPgpXK:对象, -LORZtqZeg3nyOW4p9I1:对象,-LOYbElg81jbPtao2nl4:对象}
我要寻找的是嵌套商品ID,而不是所有值
我附上了数据库的图片,所以您可以看到它的样子
以下是视图的最小表示形式:
const listItems = this.state.list.map((item, index) =>
Object.values(item).map(nestedItem => (
<div>
{nestedItem.title}
<button
onClick={() => this.update(index)}
>
CLICK
</button>
</div>
))
);
解决起来很容易,因为我仍在学习编程的主要概念,但是这种嵌套对象总是让我感到沮丧。请有人来救我
答案 0 :(得分:0)
您可以在示例中尝试应用以下概念吗?
考虑您拥有JSON结构,如
var obj = {
a: {
blue:16,
green:30,
red:39
},
b: {
orange:56,
yellow:34,
white:35
},
c: {
black:3,
brown:43,
purple:12
}
};
现在,当您在此对象上运行for...in
循环
for (let key in obj) {
list.push(obj[key]);
keys.push(a);
}
obj[key]
将返回值{blue:16,green:30,red:39}
,该值最终将被推入列表数组
如果您想要蓝色,绿色和红色,可以执行
Object.keys(obj[key]); //will return an array ['blue', 'green', 'red']