Я пытаюсь написать программу, которая принимает данные (library, authorName) и возвращает название книг, которые написал автор.
Библиотека выглядит так:
let library = [
{ author: 'Bill Gates', title: 'The Road Ahead', libraryID: 1254 },
{ author: 'Carolann Camilo', title: 'Eyewitness', libraryID: 32456 },
{ author: 'Carolann Camilo', title: 'Cocky Marine', libraryID: 32457 }
];
Мой код выглядит так:
let library = [
{ author: 'Bill Gates', title: 'The Road Ahead', libraryID: 1254 },
{ author: 'Carolann Camilo', title: 'Eyewitness', libraryID: 32456 },
{ author: 'Carolann Camilo', title: 'Cocky Marine', libraryID: 32457 }
];
function searchBooks(library, author) {
for (author in library) { //enumerate
if (author in library) {
let line = Object.values(library[0]) // find line of the wanted author
let result = (line[0] + "," + line[1]) // store author name and title name
return result
} else {
return "NOT FOUND"
}
}
}
console.log(searchBooks(library, 'Bill Gates'))
Вывод выглядит так: Bill Gates,The Road Ahead
Проблема : Неважно, какого автора я буду вводить в searchBook
возвращается Билл Гейтс, первая строка библиотеки. Таким образом, это не перечислять, я думаю. Но почему бы и нет?
Сначала я подумал, может быть, мне следует избегать жесткого кодирования [0] и [1] и вместо этого использовать i и i ++. Но, похоже, это тоже не работает, так как выводит TypeError: Cannot convert undefined or null to object