我已经解决了我的函数,使其完美运行,现在唯一的问题是,无论出于何种原因,他们想要在其中实现辅助函数,我什至不知道从哪里开始,因为我并没有真正工作太多使用辅助函数,我将包含数据和代码,你们的任何建议都会有所帮助。谢谢!
这是给我的提示:
getBorrowersForBook()
中的 public/src/books.js
函数有两个参数,顺序如下:
它应该从书的 borrows
键返回所有交易的数组。但是,每笔交易都应包含相关的帐户信息和 returned
键。
我已经解决了代码没有在这里使用辅助函数:
function getBorrowersForBook(book, accounts) {
let result = [];
let borrowArray = book.borrows;
borrowArray.forEach(borrow=>{
let account = accounts.find(acc => acc.id === borrow.id);
let obj = account;
obj['returned'] = borrow.returned;
result.push(obj);
})
console.log(result);
return result.slice(0,10);
}
这是此函数中使用的数据的部分:
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,
},
{
id: "5f446f2eed18105706d6ca19",
returned: true,
},
{
id: "5f446f2eae901a82e0259947",
returned: true,
},
{
id: "5f446f2e91c2af00cb74e82b",
returned: true,
},
{
id: "5f446f2e5aa2bb5545a0f8a6",
returned: true,
},
{
id: "5f446f2ea508b6a99c3e42c6",
returned: true,
},
{
id: "5f446f2e50cc2da9cd80efdb",
returned: true,
},
{
id: "5f446f2e0b3e2ff72fc503e7",
returned: true,
},
{
id: "5f446f2e91c2af00cb74e82b",
returned: true,
},
{
id: "5f446f2ef795e593cd3cd19d",
returned: true,
},
{
id: "5f446f2e2f35653fa80bf490",
returned: true,
},
{
id: "5f446f2e7b9cd304fed3a8bc",
returned: true,
},
{
id: "5f446f2ed9aac23c0340aab2",
returned: true,
},
],
},
{
id: "5f4471329627160be1e8ce92",
title: "esse ea veniam non occaecat",
genre: "Classics",
authorId: 10,
borrows: [
{
id: "5f446f2ed3609b719568a415",
returned: false,
},
{
id: "5f446f2ec32d71dabec35b06",
returned: true,
},
{
id: "5f446f2ef2ab5f5a9f60c4f2",
returned: true,
},
{
id: "5f446f2e7a1be21e362b82f9",
returned: true,
},
{
id: "5f446f2e6059326d9feb9a68",
returned: true,
},
{
id: "5f446f2ec32d71dabec35b06",
returned: true,
},
{
id: "5f446f2e59f9380a1d03d766",
returned: true,
},
{
id: "5f446f2e141b97d842b680fd",
returned: true,
},
{
id: "5f446f2e409f8883af2955dd",
returned: true,
},
{
id: "5f446f2ee176f80b8d5d24da",
returned: true,
},
{
id: "5f446f2ef795e593cd3cd19d",
returned: true,
},
{
id: "5f446f2eef419207c5fa4ec9",
returned: true,
},
{
id: "5f446f2e50cc2da9cd80efdb",
returned: true,
},
{
id: "5f446f2e4081699cdc6a2735",
returned: true,
},
],
},
{
id: "5f44713265e5d8d17789beb0",
title: "tempor occaecat fugiat",
genre: "Travel",
authorId: 16,
borrows: [
{
id: "5f446f2e4eff1030e7316861",
returned: true,
},
{
id: "5f446f2ecc5c4787c403f844",
returned: true,
},
{
id: "5f446f2ee1661e64cde14e55",
returned: true,
},
{
id: "5f446f2e50cc2da9cd80efdb",
returned: true,
},
{
id: "5f446f2ef795e593cd3cd19d",
returned: true,
},
{
id: "5f446f2eae901a82e0259947",
returned: true,
},
{
id: "5f446f2e3e70bb4e1ab821c9",
returned: true,
},
{
id: "5f446f2ef2ab5f5a9f60c4f2",
returned: true,
},
{
id: "5f446f2e136866e4fe60c893",
returned: true,
},
],
},
{
id: "5f44713264bb872240dd62d0",
title: "proident cupidatat fugiat aliquip do",
genre: "Young Adult",
authorId: 20,
borrows: [
{
id: "5f446f2efa7fe184c4014dd2",
returned: false,
},
{
id: "5f446f2e59f9380a1d03d766",
returned: true,
},
{
id: "5f446f2ede05a0b1e3394d8b",
returned: true,
},
{
id: "5f446f2ed9aac23c0340aab2",
returned: true,
},
{
id: "5f446f2e136866e4fe60c893",
returned: true,
},
{
id: "5f446f2eef419207c5fa4ec9",
returned: true,
},
{
id: "5f446f2e409f8883af2955dd",
returned: true,
},
{
id: "5f446f2e59f9380a1d03d766",
returned: true,
},
{
id: "5f446f2e7d3e00a5efe35b6e",
returned: true,
},
{
id: "5f446f2ec32d71dabec35b06",
returned: true,
},
{
id: "5f446f2e3e70bb4e1ab821c9",
returned: true,
},
{
id: "5f446f2e5abedb2ba5eecd16",
returned: true,
},
{
id: "5f446f2e7eb4accbc92cb7a8",
returned: true,
},
{
id: "5f446f2ef7fc711c78b57e51",
returned: true,
},
{
id: "5f446f2e5a23764338868b10",
returned: true,
},
{
id: "5f446f2ea0502bf8cbc7676a",
returned: true,
},
{
id: "5f446f2eaf32d8ddf09e8f83",
returned: true,
},
{
id: "5f446f2eef419207c5fa4ec9",
returned: true,
},
{
id: "5f446f2e91a138c3a8ac6980",
returned: true,
},
{
id: "5f446f2e5e2952040e9f9b88",
returned: true,
},
{
id: "5f446f2e141b97d842b680fd",
returned: true,
},
{
id: "5f446f2ee734f727dfceefbd",
returned: true,
},
{
id: "5f446f2efa2e5110917e5929",
returned: true,
},
{
id: "5f446f2e5e2952040e9f9b88",
returned: true,
},
{
id: "5f446f2e4081699cdc6a2735",
returned: true,
},
{
id: "5f446f2e7b9cd304fed3a8bc",
returned: true,
},
],
},
{
id: "5f447132a476ece080afa067",
title: "ullamco est minim",
genre: "Nonfiction",
authorId: 25,
borrows: [
{
id: "5f446f2e189628dfd4e6225e",
returned: false,
},
{
id: "5f446f2ec56b2fa77d5545ef",
returned: true,
},
{
id: "5f446f2e2f35653fa80bf490",
returned: true,
},
{
id: "5f446f2ee1661e64cde14e55",
returned: true,
},
{
id: "5f446f2ee5be00208a4481e0",
returned: true,
},
{
id: "5f446f2ecc5c4787c403f844",
returned: true,
},
{
id: "5f446f2e91c2af00cb74e82b",
returned: true,
},
{
id: "5f446f2e2f35653fa80bf490",
returned: true,
},
{
id: "5f446f2ed92454081fb1999b",
returned: true,
},
{
id: "5f446f2e136866e4fe60c893",
returned: true,
},
{
id: "5f446f2e7d3e00a5efe35b6e",
returned: true,
},
{
id: "5f446f2e93963fcd4e5adf00",
returned: true,
},
{
id: "5f446f2e4081699cdc6a2735",
returned: true,
},
{
id: "5f446f2ecc5c4787c403f844",
returned: true,
},
{
id: "5f446f2e136866e4fe60c893",
returned: true,
},
{
id: "5f446f2ef055e8f3064b763e",
returned: true,
},
{
id: "5f446f2e7d3e00a5efe35b6e",
returned: true,
},
{
id: "5f446f2e5e2952040e9f9b88",
returned: true,
},
{
id: "5f446f2ed9aac23c0340aab2",
returned: true,
},
{
id: "5f446f2efa2e5110917e5929",
returned: true,
},
{
id: "5f446f2e3e70bb4e1ab821c9",
returned: true,
},
{
id: "5f446f2e6dd33178245e5771",
returned: true,
},
{
id: "5f446f2ec56b2fa77d5545ef",
returned: true,
},
{
id: "5f446f2eef419207c5fa4ec9",
returned: true,
},
{
id: "5f446f2ef055e8f3064b763e",
returned: true,
},
{
id: "5f446f2e1c71888e2233621e",
returned: true,
},
{
id: "5f446f2eeb9463f976413b65",
returned: true,
},
{
id: "5f446f2e138a3841f7aeccf2",
returned: true,
},
{
id: "5f446f2e4081699cdc6a2735",
returned: true,
},
],
}
我忘了包含额外的数据,它还会从“帐户”数组中提取数据:
const accounts = [
{
id: "5f446f2ecfaf0310387c9603",
picture: "https://api.adorable.io/avatars/75/esther.tucker@zillacon.me",
age: 25,
name: {
first: "Esther",
last: "Tucker",
},
company: "ZILLACON",
email: "esther.tucker@zillacon.me",
registered: "Thursday, May 28, 2015 2:51 PM",
},
{
id: "5f446f2ed46724f41c9fc431",
picture: "https://api.adorable.io/avatars/75/ferrell.morris@ecolight.com",
age: 35,
name: {
first: "Ferrell",
last: "Morris",
},
company: "ECOLIGHT",
email: "ferrell.morris@ecolight.com",
registered: "Thursday, February 8, 2018 1:16 PM",
},
{
id: "5f446f2e5e2952040e9f9b88",
picture: "https://api.adorable.io/avatars/75/robertson.simmons@goko.tv",
age: 38,
name: {
first: "Robertson",
last: "Simmons",
},
company: "GOKO",
email: "robertson.simmons@goko.tv",
registered: "Monday, October 30, 2017 10:28 PM",
},
{
id: "5f446f2e637138095dcc3db2",
picture: "https://api.adorable.io/avatars/75/allen.bartlett@poshome.co.uk",
age: 30,
name: {
first: "Allen",
last: "Bartlett",
},
company: "POSHOME",
email: "allen.bartlett@poshome.co.uk",
registered: "Saturday, June 6, 2015 1:07 PM",
},
{
id: "5f446f2e3900dfec59489477",
picture: "https://api.adorable.io/avatars/75/langley.henson@zoxy.org",
age: 31,
name: {
first: "Langley",
last: "Henson",
},
company: "ZOXY",
email: "langley.henson@zoxy.org",
registered: "Friday, September 9, 2016 3:48 AM",
},
{
id: "5f446f2eef419207c5fa4ec9",
picture: "https://api.adorable.io/avatars/75/patrick.todd@comtent.biz",
age: 29,
name: {
first: "Patrick",
last: "Todd",
},
company: "COMTENT",
email: "patrick.todd@comtent.biz",
registered: "Monday, February 19, 2018 7:35 AM",
},
{
id: "5f446f2ede05a0b1e3394d8b",
picture:
"https://api.adorable.io/avatars/100/dorothy.fernandez@medicroix.biz",
age: 35,
name: {
first: "Dorothy",
last: "Fernandez",
},
company: "MEDICROIX",
email: "dorothy.fernandez@medicroix.biz",
registered: "Thursday, July 12, 2018 12:40 PM",
},
{
id: "5f446f2efa7fe184c4014dd2",
picture:
"https://api.adorable.io/avatars/100/sheena.castaneda@geeknet.name",
age: 37,
name: {
first: "Sheena",
last: "Castaneda",
},
company: "GEEKNET",
email: "sheena.castaneda@geeknet.name",
registered: "Monday, January 11, 2016 2:49 AM",
}
如果有人需要参考,这里是测试代码:
describe("getBorrowersForBook()", () => {
it("should return an array for a book of all borrowers with their information and return status", () => {
const book = booksFixture[3];
const [first, second] = getBorrowersForBook(book, accounts);
expect(first.name).to.eql({ first: "Barber", last: "Waters" });
expect(first.email).to.eql("barber.waters@kegular.biz");
expect(first.returned).to.be.true;
expect(second.name).to.eql({ first: "Dyer", last: "Trevino" });
expect(second.email).to.eql("dyer.trevino@slax.io");
expect(second.returned).to.be.true;
});
it("should limit the list to ten borrowers", () => {
const book = booksFixture[1];
const actual = getBorrowersForBook(book, accounts);
expect(actual.length).to.equal(10);
});
});
再次不知道为什么他们想要在这方面有一个辅助功能,因为我已经解决了它,但任何反馈都将不胜感激。