gpt4 book ai didi

javascript - 显示 AJAX 的不同数组描述的控制台

转载 作者:行者123 更新时间:2023-12-02 23:59:38 25 4
gpt4 key购买 nike

我有一个包含对象的数组,其中包含一个数组,其中又包含对象。虽然有点困惑,但这正是 Google Books API 返回信息的方式。

var myList = [
{kind:'book', totalItems:1, items: [{volumeInfo:{authors:['JRR Tolkien']},publishedDate:"1965",pageCount:355}]},
{kind:'book', totalItems:1, items: [{volumeInfo:{authors:['HP Lovecraft']},publishedDate:"1930",pageCount:269}]},
{kind:'book', totalItems:1, items: [{volumeInfo:{authors:['Oscar Wilde']},publishedDate:"1920",pageCount:400}]},
];

console.log(myList);
console.log(myList[1].items[0].pageCount);

我可以毫无问题地访问这里的所有内容。当我创建一个相同的数组时,除了在 jQuery 中使用 ajax 调用之外,我无法访问任何对象或数组项。

var bookList = $(".book").map(function () {
return this.id;
}).get();

console.log(bookList);

var thelink = "https://www.googleapis.com/books/v1/volumes?q=isbn:";
var allresults = [];

for (var i = 0; i < bookList.length; i++) {
$.ajax({
url: thelink + bookList[i],
dataType: 'json',
type: 'get',
cache: true,
success: function (data) {
allresults.push(data);
}
});
};

console.log(allresults[1].items[0].pageCount);
<!doctype html>
<html>

<head>
<title>Google Books</title>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>
<h1>Input</h1>
<div id="book-container">
<div id="0618249060" class="book"></div>
<div id="9780743258074" class="book"></div>
<div id="9780345466457" class="book"></div>
</div>
<h1>Result</h1>
<div id="resultContainer">
<!--Put a bunch of stuff here-->
</div>
</body>

</html>

据我了解,这些应该可以以完全相同的方式访问。我唯一的线索是,在控制台中变量“myList”和“allresults”的显示略有不同。第二个是可访问的,第一个是不可访问的。

example

我很困惑,不知道要搜索什么才能找到解决方案!我到底做错了什么?谢谢!

最佳答案

这是因为 ajax 调用是异步的。因此,当 for 循环完成时,您将有一个正在执行的控制台语句,但在此之前,ajax 调用尚未完成,因此您无法正确访问数据。您应该传递一个回调,并且在该回调中您应该有控制台或使用 axios js(基于 Promise 的 HTTP 库)

关于javascript - 显示 AJAX 的不同数组描述的控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55231378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com