javascript - 从 api pull 映射后无法访问数组中的数据
问题描述
因此,我在 React 应用程序中使用 fetch 从 api 中提取了一些数据,然后我使用 .map 将我想要的数据获取到我试图以表格格式呈现的数组中。
当我记录映射数组时,它会呈现我所追求的数据,但是当我尝试访问它以呈现它的特定元素时,它会返回未定义的数据。
如果控制台日志中的数组显示它具有元素名称和年龄,那么当我尝试访问它时,我是否做错了未定义的事情?或者,也许我以错误的方式访问它。任何帮助,将不胜感激。
function getMap(results) {
return results.map((res) => {
return {name: res.name, age: res.age}
}
fetch(URL)
.then(result) {
let x = getMap(result.result);
console.log(x);
///// the console log shows an array [{name: 'Peter', age: 30}]
console.log(x.name);
///// console log returns undefined
})
解决方案
您没有正确访问数组。请记住,数组就像是事物的“列表”,在这种情况下是对象。每个对象都有两个属性,名称和年龄。您尝试在第二个 console.log 中访问它的方式是尝试访问阵列本身的 .name 属性。这是非常基本的,但是要访问数组中的项目,您需要传递一个索引(从零开始),如下所示myArray[0]
:因此,要访问数组中第一项的 name 属性,您可以使用x[0].name
. 要遍历整个数组,您可以这样做x.forEach(item => console.log(item.name))
推荐阅读
- kotlin - 关于 kotlin 中的比较器
- java - 关于“可以从多个模块访问包 org.w3c.dom 的具体问题:
, java.xml" - python-3.x - 如何从 Robotframework 调用 python 脚本作为 Teardown 的一部分
- apache-spark - 如何使用 REST API 从 Spark 历史服务器获取查询执行计划?
- java - 为什么 permitAll() 返回 403 spring security?
- java - 使用 ManyToOne 关联查询导致 SQLException
- jquery - 如何使用 jquery 更改嵌套 span 的值?
- swiftui - Swiftui UIViewRepresentable 表格视图在滚动时具有填充
- javascript - 无法在 Quasar 应用程序的 Vue.js 组件上的“this.$attrs”上定义类型
- objective-c - 如何在Objective C中执行从小部件到父应用程序的深层链接