You need to enable JavaScript to run this app. JavaScript实现getBooksPossessedByAccount函数:返回账户未还书籍及关联作者
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现getBooksPossessedByAccount函数:返回账户未还书籍及关联作者

原实现代码问题说明
  • 对borrows的数据结构理解错误:borrows是数组,原代码直接通过books[idxBks].borrows.id取属性,相当于把数组当成单对象访问,根本无法匹配到对应账户的借阅记录
  • 匹配逻辑顺序错误:未校验书籍是否符合用户未归还的借阅条件,就进入作者匹配逻辑,且错误读取数组result的authorId属性,无法拿到单本书的作者标识
  • 流程控制错误:在作者匹配的循环里直接return,找到第一个匹配的作者就会终止整个函数运行,根本收集不全符合条件的书籍
  • 结果结构错误:不符合要求的输出格式,没有把作者对象内嵌到单本图书对象中,反而返回了数组和额外对象拼接的结构
修正后的可运行代码
function getBooksPossessedByAccount(account, books, authors) {
  const accountId = account.id;
  const result = [];

  // 遍历所有书籍,筛选用户当前持有(借出未归还)的图书
  for (const book of books) {
    // 检查图书的借阅记录中,是否存在当前账户未归还的条目
    const hasUnreturnedBorrow = book.borrows.some(item => {
      return item.id === accountId && item.returned === false;
    });

    if (!hasUnreturnedBorrow) continue;

    // 匹配当前图书对应的作者信息
    const matchedAuthor = authors.find(author => author.id === book.authorId);
    // 构造带作者内嵌属性的图书对象
    const processedBook = {
      ...book,
      author: matchedAuthor
    };

    result.push(processedBook);
  }

  return result;
}

内容的提问来源于stack exchange,提问作者Jesse Sexton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 00:36:06