javascript - React - for 循环只返回索引而不是整个对象

标签 javascript reactjs

我有一个组件,其状态为以下对象(“项目”):

items:
  count: 2
  next: null
  previous:  null
  results: Array[2]
    0: {…}    
      id: 1
      price: "100.00"
      show_in_shop: true
      tax_percentage: "5.0000000"
      title: 'Object title'
      type: "assessment"

    1: {…}
      id: 2
      price: "1000.00"
      show_in_shop: true
      tax_percentage:"8.0000000"
      title: "Title of this object"
      type: "class"

我正在创建一个循环遍历 this.state.items.results 并检查 Item 对象的值是否在搜索查询中的过滤器。

但是,当我运行这段代码时,我遇到了以下问题:

for (let item in this.state.items.results) {
            console.log(item);

打印到控制台的是

0
1

而不是:

0: {…}    
      id: 1
      price: "100.00"
      show_in_shop: true
      tax_percentage: "5.0000000"
      title: 'Object title'
      type: "assessment"


1: {…}
      id: 2
      price: "1000.00"
      show_in_shop: true
      tax_percentage:"8.0000000"
      title: "Title of this object"
      type: "class"

但是为什么?当我检查 react-chrome 插件中的状态时,我看到“item.results”填充了数据并且包含的​​数据比打印到控制台的数据多。有谁知道为什么循环只遍历索引而不返回对象?

最佳答案

javascript for .. in 确实只返回索引。

使用:

for (let key in this.state.items.results) {
    let item = this.state.items.results[key];
    console.log(item);
}

关于javascript - React - for 循环只返回索引而不是整个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48184780/

相关文章:

javascript - 在工厂函数中,对象名称和 'this' 关键字是否经常或总是可以互换?

javascript - 查找对象的值

java - 如何测试基于ajax的网站?

javascript - 前端路由器如何在 MVC 框架中工作?

javascript - Ember 应用程序中的 NodeJS 和客户端 Javascript

javascript - 使用 jQuery,找到包含特定字符串的链接并添加一个类

javascript - 如何将值从 <a> ( anchor 标记)传递到 React js 中的函数?

javascript - Chart.JS 工具提示回调标签和标题 (v3.5)

javascript - 防止模态在 react 中重新渲染后关闭

javascript - 在 react 中使用 setState 将预定义对象插入数组