我有一个组件,其状态为以下对象(“项目”):
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/