javascript - 尝试返回一个数字,该数字表示当前已从图书馆借出的图书数量
问题描述
这是提示:
“getBooksBorrowedCount()
函数public/src/home.js
有一个参数:
- 一堆书。
它返回一个数字,表示当前从图书馆借出的图书数量。这个数字可以通过查看borrows
每本书的密钥中的第一笔交易来找到。如果交易说这本书没有被归还(即returned: false
),这本书已经被借走了。”
我试过的:
function getBooksBorrowedCount(books){
for (let i = 0; i < books.length; i++) {
if (books[i].returned === true) {
return books[i];
}
}
return null;
}
每次我运行此代码时,我都会收到一条错误消息,指出“预期 null 等于 6”对于我的一生我无法弄清楚,我需要一些帮助。
此处列出了示例数据:
const books = [{id: "5f447132d487bd81da01e25e",
title: "sit eiusmod occaecat eu magna",
genre: "Science",
authorId: 8,
borrows: [
{
id: "5f446f2e2cfa3e1d234679b9",
returned: false,
},
{
id: "5f446f2ed3609b719568a415",
returned: true,
},
{
id: "5f446f2e1c71888e2233621e",
returned: true,
},
{
id: "5f446f2e6059326d9feb9a68",
returned: true,
},
{
id: "5f446f2ede05a0b1e3394d8b",
returned: true,
},
{
id: "5f446f2e4081699cdc6a2735",
returned: true,
},
{
id: "5f446f2e3900dfec59489477",
returned: true,
},
{
id: "5f446f2e6059326d9feb9a68",
returned: true,
},
{
id: "5f446f2e409f8883af2955dd",
returned: true,
},
{
id: "5f446f2e3900dfec59489477",
returned: true,
},
{
id: "5f446f2eae901a82e0259947",
returned: true,
},
{
id: "5f446f2ef2ab5f5a9f60c4f2",
returned: true,
},
{
id: "5f446f2ea6b68cf6f85f6e28",
returned: true,
},
解决方案
您必须访问第一个borrows
数组项才能获取数据
const books = [{
id: "5f447132d487bd81da01e25e",
title: "sit eiusmod occaecat eu magna",
genre: "Science",
authorId: 8,
borrows: [{
id: "5f446f2e2cfa3e1d234679b9",
returned: false,
},
{
id: "5f446f2ed3609b719568a415",
returned: true,
},
{
id: "5f446f2e1c71888e2233621e",
returned: true,
},
{
id: "5f446f2e6059326d9feb9a68",
returned: true,
},
{
id: "5f446f2ede05a0b1e3394d8b",
returned: true,
},
{
id: "5f446f2e4081699cdc6a2735",
returned: true,
},
{
id: "5f446f2e3900dfec59489477",
returned: true,
},
{
id: "5f446f2e6059326d9feb9a68",
returned: true,
},
{
id: "5f446f2e409f8883af2955dd",
returned: true,
},
{
id: "5f446f2e3900dfec59489477",
returned: true,
},
{
id: "5f446f2eae901a82e0259947",
returned: true,
},
{
id: "5f446f2ef2ab5f5a9f60c4f2",
returned: true,
},
{
id: "5f446f2ea6b68cf6f85f6e28",
returned: true,
}
]
}]
function getBooksBorrowedCount(books) {
let count = 0
for (let i = 0; i < books.length; i++) {
if (books[i].borrows[0].returned !== true) count++
}
return count;
}
console.log(getBooksBorrowedCount(books))
//Another way of doing this with less code:
let numBooksBorrowed = 0;
books.forEach(book => {
if (!book.borrows[0].returned) numBooksBorrowed++;
});
console.log(numBooksBorrowed)
推荐阅读
- visual-studio-code - vscode如何在一个扩展中调用其他扩展
- javascript - 如何使用 map 函数迭代嵌套对象?
- css - CSS rCharts 调整与 R renderChart{} 中的 staggerLabel 函数重叠
- ruby - 使用二维数组中的最大元素数查找非空交集
- android - 单击按钮后需要帮助绑定按钮,数据来自retrofit2 api调用
- swift - 对表示为数组的对象的 Swift Codable 支持
- aem - 如何创建类似于吊索作业创建的节点路径
- qt-designer - Qt Designer 使用 QWebEngineView 崩溃
- javascript - 未找到此依赖项:* core-js/modules/es6.regexp.split
- visual-studio-2015 - 如何降级 Visual Studio Specflow 扩展?