首页 > 解决方案 > 循环遍历每个函数中的 jQuery 数组不起作用

问题描述

我有从另一个函数中的 API 获得的数据。要获取数据,我这样做:

var posts = get_posts();

然后我可以打印到控制台:

console.info( posts );

我会得到这样的结果:

[]
  0: {id: 123, date: "2018-01-01T12:00:00", slug: "asdf-xyz", author: 1, media: 1, …}
  1: {id: 123, date: "2018-01-01T12:00:00", slug: "asdf-xyz", author: 1, media: 1, …}
  ...

该数组中有多个条目,其中包含各种数据位。

但是,如果我随后尝试遍历它们并执行某些操作,则 each 语句不会执行任何操作。就好像它被完全忽略了(它可能是)。

$.each( posts, function( index, record ) {

    alert( index );

});

我在这里做错了什么?

编辑

这是我在返回(或应该)返回数组的函数中的代码。使用简单console.log的返回数据,但stringify只使用返回[]

$.each( object, function( key, value ) {

    var post = {
        id: value.id,
        ...
    };

    posts.push( post );

});

console.log( posts ); // prints the data out

JavaScript 不是我最强的编码语言,所以我假设我设置的数据可能不正确?

标签: javascriptjquery

解决方案


应该没问题。我为您整理了一个工作示例。你能发现你的代码和下面的工作片段之间的区别吗?

var posts = [
  { name: 'Post1' },
  { name: 'Post2' }
];

$.each(posts, function(index, record) {
  console.log(index, record);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

问题可能出在您用于填充数组的代码中。你能提供更多的上下文吗?


推荐阅读