首页 > 解决方案 > 如何在数组中获取特定数组

问题描述

我无法从数组数组中获取一组特定的值,因为这些值以未定义的形式出现。我的数组存储在 state 中并设置如下:

survey: [{names: ["sara", "tom"]}, {age: ["17", "33"]}, {col: ["blue", "green"]}]

要仅访问名称,我一直在尝试使用以下行:

console.log(this.state.survey.names)

当我检查时,控制台的名称为“未定义”。当我检查调查的值时,它显示为一个数组数组,其中每个嵌套数组都有两个值存储在里面。

我想检查这一点,因为我试图映射出嵌套数组并且映射出调查名称不起作用,因为长度显示为 0。当嵌套数组未存储在状态时,我成功映射出嵌套数组,所以我想知道我缺少什么或者我的语法不正确。

标签: reactjsmultidimensional-array

解决方案


您试图访问一个数组,就好像它是一个对象,而不是一个对象数组。一个简单的解决方法是 - this.state.survey.find(item => item.names).names

从长远来看,除非您有理由将其存储为数组,否则重组和存储为对象会容易得多。如果您将其重组为类似

survey: {
  names: ['name1', 'name2'],
  age: ...etc

如果您想说Sarais17而她的 col is blue,为什么不将其存储为单个对象?


推荐阅读