diff --git a/tasks/javascript/hard/src/library.js b/tasks/javascript/hard/src/library.js index 49403a458e..0a7dbaee74 100644 --- a/tasks/javascript/hard/src/library.js +++ b/tasks/javascript/hard/src/library.js @@ -36,11 +36,22 @@ class Library { } searchBooks(query) { - // TODO: Implement search functionality + return this.books.filter(i => + Object.keys(i).some(key => String(i[key]).toLowerCase().includes(query.toLowerCase()))); } filterBooks(criteria) { - // TODO: Implement filter functionality + const filterKeys = Object.keys(criteria); + return this.books.filter(obj => { + return filterKeys.every(key => { + if (!criteria[key].length) { + return true; + } + return criteria[key] === (obj[key]); + }); + }); + + } }