javascript - 循环遍历每个函数中的 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 不是我最强的编码语言,所以我假设我设置的数据可能不正确?
解决方案
应该没问题。我为您整理了一个工作示例。你能发现你的代码和下面的工作片段之间的区别吗?
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>
问题可能出在您用于填充数组的代码中。你能提供更多的上下文吗?
推荐阅读
- youtube-api - 合法的 YouTube API 合规审核?
- excel - If(And( arguments + Vlookup 没有返回预期值
- c# - 尽管添加了 application/json 标头,但请求仍为“text/plain”
- kubernetes - Kubernetes 会在重启 Pod 之前发送信号吗?
- c# - C# 中的 AWS DynamoDb 事务
- sql - 日期时间倒退
- javascript - 拦截 react native webview 的每一个请求
- php - 超越多对多。如何获取与数据透视表不直接相关的数据?
- python - 考虑前行的值,将函数应用于 pandas 数据框列
- reactjs - React - Redux - 当api url是动态的时服务器端渲染不渲染