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'; 这样的对象,那么它还将返回Helloa[1]。但是aobject 而不是array 记录 t.schedules 而不是 t.schedules[0] 所以我们可以看到它的结构。 【参考方案1】:

试试这样。如果t.schedulesobject,那么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 中,如何检查数组是不是有重复值?

检查数组中的值(包括不是函数)[重复]

找出不是两个数组共有的元素

Javascript:检查对象是不是没有属性或映射/关联数组是不是为空[重复]

如何在Javascript中选择对象内的数组内的字段[重复]

javascript 判断字符串是不是在一个数组中