首页 > 解决方案 > 尝试返回一个数字,该数字表示当前已从图书馆借出的图书数量

问题描述

这是提示:

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,
  },

标签: javascript

解决方案


您必须访问第一个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)


推荐阅读