【发布时间】:2019-08-20 05:06:48
【问题描述】:
我正在尝试从对象数组中的数组中提取数据,然后使用嵌套的 for 循环将数据推送到新数组中。只有一个 for of 循环它可以工作,但嵌套 for of 循环它给我以下错误:
TypeError: TypeError: _iterator4[typeof Symbol === "function" ?Symbol.iterator : "@@iterator"] 不是函数。 (在 '_iterator4typeof Symbol === "function" ?符号迭代器: "@@iterator"', '_iterator4[typeof Symbol === "function" ? Symbol.iterator :"@@iterator"]' 未定义)
我已经尝试过使用 while 循环和 for(i=0;i<blah.length;i++).
这是我的代码。
let approvals=[]
for(let task of this.props.currentSubscriptionData.subData.tasks){
if(task.taskupdates.length!=0){
for(let approval of task){
aprrovals.push(approval)
}
}
}
以下工作正常。
let approvals=[]
for(let task of this.props.currentSubscriptionData.subData.tasks){
if(task.taskupdates.length!=0){
console.log('hi')
}
}
数据结构简化:初始数组为
this.props.currentSubscriptionData.subData.tasks
Array [
Object {
"taskupdates": Array [
Object {
"approval_amount_required": 100000,
},
Object {
"approval_amount_required": 150000,
},
Object {
"approval_amount_required": 50000,
},
Object {
"approval_amount_required": 50000, },
],
},
Object {
"taskupdates": Array [],
},
Object {
"taskupdates": Array [],
},
]
【问题讨论】:
-
您的数据结构如何?
-
您的意思是
for (let approval of task.taskupdates)?看起来您可能无法遍历task。 -
谢谢!它现在几乎可以工作了,我在推入空数组时得到
can't find variable approvals。它是否超出了范围? -
你用两个 'r' 拼写了
aprrovals。还有一个“p”。 -
作为一个普遍的观点,我在软件行业工作了 10 多年,总的来说,不是你的编程语言坏了。这并不是说您遇到了一些奇怪的边缘情况“在 for 循环中不能有 for 循环”或“它是否以某种方式奇怪地超出了范围”。 99% 的时间你都犯了一个简单的错误,而你只是还没有看到它:-)
标签: javascript arrays react-native