我无法从数组数组中获取一组特定的值,因为这些值以undefineda的形式出现。我的数组存储在状态中,并按以下方式设置:
survey: [{names: ["sara", "tom"]}, {age: ["17", "33"]}, {col: ["blue", "green"]}]
要仅访问名称,我一直在尝试使用以下行:
console.log(this.state.survey.names)
当我检查时,控制台的名称“未定义”。当我检查Survey的值时,它显示为一个数组数组,其中每个嵌套数组内部都有两个值存储。
我要检查这一点,因为我试图映射嵌套数组,而映射出测量名称却不起作用,因为长度显示为0。当嵌套数组未存储在状态中时,我可以成功映射出嵌套数组,因此我想知道我缺少什么或者我的语法不正确。
答案 0 :(得分:0)
您正试图像访问对象一样访问数组,而不是对象数组。一个简单的解决方法是-
this.state.survey.find(item => item.names).names
从长远来看,除非有理由将其存储为数组,否则重组和存储为对象会容易得多。如果您将其重组为
survey: {
names: ['name1', 'name2'],
age: ...etc
如果您要说Sara
是17
,而她的col是blue
,为什么不将其存储为单个对象呢?