reactjs - 如何在数组中获取特定数组
问题描述
我无法从数组数组中获取一组特定的值,因为这些值以未定义的形式出现。我的数组存储在 state 中并设置如下:
survey: [{names: ["sara", "tom"]}, {age: ["17", "33"]}, {col: ["blue", "green"]}]
要仅访问名称,我一直在尝试使用以下行:
console.log(this.state.survey.names)
当我检查时,控制台的名称为“未定义”。当我检查调查的值时,它显示为一个数组数组,其中每个嵌套数组都有两个值存储在里面。
我想检查这一点,因为我试图映射出嵌套数组并且映射出调查名称不起作用,因为长度显示为 0。当嵌套数组未存储在状态时,我成功映射出嵌套数组,所以我想知道我缺少什么或者我的语法不正确。
解决方案
您试图访问一个数组,就好像它是一个对象,而不是一个对象数组。一个简单的解决方法是 -
this.state.survey.find(item => item.names).names
从长远来看,除非您有理由将其存储为数组,否则重组和存储为对象会容易得多。如果您将其重组为类似
survey: {
names: ['name1', 'name2'],
age: ...etc
如果您想说Sara
is17
而她的 col is blue
,为什么不将其存储为单个对象?
推荐阅读
- gitlab - Gitlab:出现了一个runner系统故障
- azure - Azure 数据工厂 webhook 执行超时而不是中继错误
- c# - CSS 选择器。选择具有相似名称的两个类之一
- python - Python Dataframe:获取指定日期范围/期间之间的行?
- javascript - 停止 javascript 在 html 模板中拆分变量
- javascript - mousemove 停止和性能问题
- visual-studio-code - 带有 ubuntu + wsl 2 的 vscode 永远不会提示输入 gpg 密码,即使在配置之后只是“无法写入提交数据”
- react-native - React Native callkeep 来电过期时间
- gekko - 为什么在 python GEKKO 中返回索引错误
- mysql - 安装 mysql-server 时,我没有获得任何设置密码和用户名的界面