我的项目希望我使用一个名为
filterBooks
的函数。该函数的目的是根据搜索输入过滤书籍。它希望我使用 helper.js
中名为 flattenObjectValuesIntoArray
的函数。该函数循环遍历 booklist.js
中的 books 对象,并将对象键扁平化为数组,以便我们通过输入值搜索整个对象。
这是确切的说明:
filterBooks() 函数接受搜索字符串和书籍列表作为参数,并将包含搜索输入精确匹配的所有书籍作为对象数组返回。该数组中的对象应格式化为具有标题、作者和标签属性的书籍,类似于原始书籍数组。它应该使用 flattenObjectValuesIntoArray() 函数轻松搜索图书对象中的所有字段。
const filterBooks = (books, barInput) => {
return books.filter((book) => {
const values = flattenObjectValuesIntoArray([book]); // Flatten book into values
return values.some((value) =>
value.toString().toLowerCase().includes(barInput.toLowerCase())
);
});
};
我期望的是,当我从 Books 对象中键入一个值时,
filterBooks
函数将返回具有该单词或值的书籍。但当我在搜索栏中搜索一个词时,什么也没发生。
您能分享一下 flattenObjectValuesIntoArray 函数是如何实现的吗?潜在的问题可能是您将 book 包装到数组中。另一个问题是 books 对象/数组的结构是什么。