javascript - For Loop 没有运行可汗学院项目:书架
问题描述
“这个程序只显示一本书。制作一组书籍(至少其中两本),并使用循环显示其中的一行。”
我想使用 for 循环在数组中绘制另一本书。在当前状态下,i 保持为 0,必须手动设置为 1 才能绘制下一本书。
var book = [
{title: "I Know Why the Caged Bird Sings",
stars: 4,
like:false},
{title: "The Old Man and the Sea",
stars: 5,
like:true}
];
// draw shelf
for (var s =1; s<4; s++) {
fill(173, 117, 33);
rect(0, s*120, width, 10);
}
// draw one book
for (var i = 0; i<book.length; i++){
var book = book[i]; //specifying the array
fill(214, 255, 219);
rect(i*97, 20, 90, 100);
fill(0, 0, 0);
text(book.title, i*97, 29, 70, 100);
for (var rating = 0; rating < book.stars; rating++) {
image(getImage("cute/Star"),i*100+ rating * 19, 90, 18, 30);
}
}
解决方案
为单个书籍使用与书籍数组不同的变量名称:
for (var i = 0; i<book.length; i++){
var bookItem = book[i];
fill(214, 255, 219);
rect(i*97, 20, 90, 100);
fill(0, 0, 0);
text(bookItem.title, i*97, 29, 70, 100);
for (var rating = 0; rating < bookItem.stars; rating++) {
image(getImage("cute/Star"),i*100+ rating * 19, 90, 18, 30);
}
}
推荐阅读
- css - css 网格容器中烦人的空间。请向我解释为什么在 gid 容器中显示 1 个像素的间隙?
- c++ - 找出两个序列之间的差异
- python - 如何在没有 Numpyt 的情况下在 2d python 数组中求和
- angular-cli - ng gs nameService --module=module 在 Angular 10 中不起作用
- python - 如何将“collate_fn”与数据加载器一起使用?
- ruby - Ruby on the Rails - Puma 服务器错误在 Heroku 计划维护后没有提供太多
- angular - 当 url 有多个与“&”连接的变量时,如何重定向到 Angular 中的某个组件?
- sass - 如何使用 @use 引用引导 scss 变量?
- node.js - 我应该在 cms 和应用程序之间共享相同的 api 吗?
- reactjs - React Router Navbar 背景更改仅适用于 pages 文件夹,但不适用于 App.js?