在循环中只得到三个结果中的两个以显示数组元素

矮行星

我似乎无法弄清楚为什么我一直排在第 1 和第 3 排。由于某种原因,我正在跳过第二名。这是我的代码

//define books and authors
var books = [
    { title: "Data Structures and Algorithm Analysis in C++",
      publisher: "Pearson",
      authors: [
       {firstName: "Mark", lastName: "Weiss" }]
      },

    { title: "Foundations of Finance",
      publisher: "Pearson",
      authors: [
       {firstName: "Arthur", lastName: "Keown" },
       {firstName: "John", lastName: "Martin" }]
      },

    { title: "Literature for Composition",
      publisher: "Longman",
      authors: [
       {firstName: "Sylvan", lastName: "Barnet" },
       {firstName: "William", lastName: "Cain" },
       {firstName: "William", lastName: "Burto" }]
      }
 ];
 
function outputBooks() {
    for (i=0; i<books.length; i++) {
       document.write("<h2>" + books[i].title + "</h2>");
       document.write("<strong>" + books[i].publisher + "</strong>"+ "<br>" + "<br>");
       outputAuthors(books[i]);
    }

 
 function outputAuthors(book) {
    for (i=0; i<book.authors.length; i++) {
      document.write("Author's Name: ");
      document.write(book.authors[i].firstName + ' ' + book.authors[i].lastName + "<br>");
    }
 }
}
 outputBooks();
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="container">
        <script type="text/javascript" language="javascript" src="ass1_q1.js">
        </script>
    </div>
</body>
</html>

我正在尝试编写一个 JS 代码来显示带有作者姓名的三本书的书名。有什么我想念的吗?

伊森·斯诺

我相信问题在于您正在全局定义i,因此 outputAuthors 正在更改 outputBooks 的索引。这可以通过更改两个 for 循环中的代码轻松解决,for (let i = 0 ...以便每个范围都有自己的变量i

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从if循环中只得到一个答案

对两个edittext求和,并在第三个中得到结果

为什么在执行“for 循环”以在 ChartJS 中显示“datasets.data”后我只得到一个值

API 平台 Symfony:只得到 30 个结果(分页)

MySQLi 为什么我只得到 1 个结果?

PHP While循环仅适用于三个结果中的前两个?

Xpath - 我什至只得到 1 个元素 - 检查器工具显示 7

试图在OpenGL中绘制一个带有两个三角形的正方形,但我只得到一个黑屏

从列表python中只得到一个答案

我在 Mysql 中只得到一个值

在for循环中创建两个三维数组

Javascript - 如何添加两个文本框的结果并在第三个中显示结果?

在python中返回一个字符串,只得到一个空数组

如何添加两个不等数组的每个元素并将其存储在第三个数组中?

减去两个文本字段并在javascript或jquery中的第三个显示结果

为什么在 Google API 中尝试使用 iOS 版 Place Autocomplete 时只得到 5 个结果而不是更多?

R使用group_by并汇总了7个变量,但只得到一个结果?

将两个不同数组的元素合并到第三个数组

在每次迭代中显示foreach循环中的两个元素?

输入两个值后,如何在第三个编辑文本中自动显示两个编辑文本值的结果?

if-while循环中的三个案例中的一个似乎不起作用,而另外两个则可以吗?

按第三个列表python的值显示两个列表的元素

cos(x) 到 MacLaurin 系列的图只得到第一个结果

javaScript将两个数字相乘并将结果显示到第三个html输入中

ConvertFrom-Json $ array只得到第一个元素?

puppeteer等待page。$$('。className'),但是我只得到该类的前11个元素,为什么?

三个元素的循环

从三个数组中找到两个中的公共元素

在第三个 div 中显示的两个 div 的自动方程