Javascript数组显示不是数组错误[重复]
Posted
技术标签:
【中文标题】Javascript数组显示不是数组错误[重复]【英文标题】:Javascript array showing not an array Error [duplicate] 【发布时间】:2019-02-06 02:26:06 【问题描述】:我在另一个对象中有一个对象数组。当我用
迭代这个数组时t.schedules.forEach(function(item)
console.log(item[index]);
);
它显示错误 Uncaught TypeError: t.schedules.forEach is not a function。
但我可以使用 t.schedules[index];
【问题讨论】:
请发布更多代码。t
相对于您的 forEach
在哪里填充?
schedules
是什么,它不是一个数组(或者你使用的是一个非常旧的 IE)。
t.schedules
可能不是数组
@Neha 如果您创建像var a = 1: 'Hello';
这样的对象,那么它还将返回Hello
和a[1]
。但是a
是object
而不是array
。
记录 t.schedules 而不是 t.schedules[0] 所以我们可以看到它的结构。
【参考方案1】:
试试这样。如果t.schedules
是object
,那么Object.values(t.schedules)
将从object
返回array of values
。然后你可以使用forEach
if (typeof t.schedules == "object")
t.schedules = Object.values(t.schedules);
t.schedules.forEach(function(item)
console.log(item[index]);
);
【讨论】:
谢谢! typeof(t.schedules) 返回对象【参考方案2】:如果您在填充数组之前尝试迭代,这种事情经常发生。记录的对象看起来像一个数据库条目,由“created_at”、“updated_at”等键判断,所以我猜你是从数据库中检索数组?如果是这样,请在迭代之前检查您是否正在等待响应。
【讨论】:
yes 数组是从 ajax 响应中填充的 那是评论而不是答案 答案不应该是推测性的。你确定这个答案是正确的吗?以上是关于Javascript数组显示不是数组错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Javascript:检查对象是不是没有属性或映射/关联数组是不是为空[重复]