gpt4 book ai didi

javascript - For循环if语句困惑

转载 作者:行者123 更新时间:2023-11-28 18:56:46 25 4
gpt4 key购买 nike

我有一个 JavaScript 对象文字数组,我正在尝试创建一个简单的 for 循环来提取所有信息。问题是,当连续超过 4 本书时,我尝试使用 If 语句关闭并重新打开 div。但是,当图书数量超过 4 本书时,它会将这些 div 添加到图书对象的每个实例中,为每个项目创建一行。我只是无法想出正确的条件是什么,只会每 4 本书关闭一次重新打开 div。

    var bookInfo = '';
var book;


function print(bookInfo) {
var outputDiv = document.getElementById('books-go-here');
outputDiv.innerHTML = bookInfo;
}

for(var i = 0; i < books.length; i += 1){
book = books[i];
bookInfo += '<div class="large-3 small-6 columns output">';
bookInfo += '<img src="' + book.image + '"/>';
bookInfo += '<div class="panel">';
bookInfo += '<h2>' + book.name + '</h2>';
bookInfo += '<p>' + book.description + '</p>';
bookInfo += '</div>';
bookInfo += '</div>';
// return bookInfo;
if (books.length > 4) {
bookInfo += '</div>"';
bookInfo += '</div>"';
bookInfo += '</div>"';
bookInfo += '<div class="row">';
bookInfo += '<div class="large-12 columns">';
bookInfo += '<div id="books-go-here" class="row">';
}

}
print(bookInfo);

非常感谢任何帮助,因为这确实让我的大脑感到痛苦。

最佳答案

如果您想在每 4 本书之后添加额外的 HTML,则应该是:

if (i > 0 && i % 4 == 0)

i % 4计算 i/4 的余数,所以是0i0 , 4 , 8i > 0测试防止它在第一本书之前关闭。

您还应该将此代码放在 for开头处。循环,而不是结束。由于计数从 0 开始,打印 4 本书后,下一次迭代将有 i = 4 .

此外,循环完成后,您需要关闭最后一行。那应该检查if (books.length > 0) (如果有 0 本书,则循环不会创建任何行,因此无需关闭任何内容)。

关于javascript - For循环if语句困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33486735/

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