Tell us what’s happening:
I can’t seem to figure out the error in Step 18
const rawCatalogCards = [
“From a Buick 8 | King, Stephen | 2002 | Shelf K7”,
“The Shining | King, Stephen | 1977 | Shelf K1”,
“The Stand | King, Stephen | 1978 | Shelf K2”,
“It | King, Stephen | 1986 | Shelf K3”,
“Misery | King, Stephen | 1987 | Shelf K4”,
“Do Androids Dream of Electric Sheep? | Dick, Philip K. | 1968 | Shelf D5”,
“I, Robot | Asimov, Isaac | 1950 | Shelf A8”,
“Foundation | Asimov, Isaac | 1951 | Shelf A9”,
"Dune |
Your code so far
const rawCatalogCards = [
"From a Buick 8 | King, Stephen | 2002 | Shelf K7",
"The Shining | King, Stephen | 1977 | Shelf K1",
"The Stand | King, Stephen | 1978 | Shelf K2",
"It | King, Stephen | 1986 | Shelf K3",
"Misery | King, Stephen | 1987 | Shelf K4",
"Do Androids Dream of Electric Sheep? | Dick, Philip K. | 1968 | Shelf D5",
"I, Robot | Asimov, Isaac | 1950 | Shelf A8",
"Foundation | Asimov, Isaac | 1951 | Shelf A9",
"Dune | Herbert, Frank | 1965 | Shelf H3",
"Neuromancer | Gibson, William | 1984 | Shelf G8",
"Snow Crash | Stephenson, Neal | 1992 | Shelf S6",
"The Martian | Weir, Andy | 2011 | Shelf W5",
"Ender's Game | Card, Orson Scott | 1985 | Shelf C2",
"The Hitchhiker's Guide to the Galaxy | Adams, Douglas | 1979 | Shelf A1",
"Ready Player One | Cline, Ernest | 2011 | Shelf C7",
"The Dark Tower: The Gunslinger | King, Stephen | 1982 | Shelf K5",
// edge cases: missing data
"Unknown Title | | 1975 | Shelf X1",
"Mysterious Manuscript | Unknown Author | | Shelf Z9",
"Ancient Scroll | Anonymous | 850 | ",
];
function parseCard(rawString) {
const parts = rawString.split("|");
const trimmedParts = [];
for (let i = 0; i < parts.length; i++) {
trimmedParts.push(parts[i].trim());
}
const title = trimmedParts[0];
const author = trimmedParts[1];
const year = trimmedParts[2];
const location = trimmedParts[3];
return {
title: title || "Unknown",
author: author || "Unknown",
year: year ? parseInt(year) : "Unknown",
location: location || "Unknown"
};
}
function parseCatalog(rawCards) {
const catalog = [];
for (let i = 0; i < rawCards.length; i++) {
catalog.push(parseCard(rawCards[i]));
}
return catalog;
}
const catalog = parseCatalog(rawCatalogCards);
function findByAuthor(catalog, author) {
const searchTerm = author.toLowerCase();
const results = [];
for (let i = 0; i < catalog.length; i++) {
if (catalog[i].author.toLowerCase().includes(searchTerm)) {
results.push(catalog[i]);
}
}
return results;
}
function groupByDecade(catalog) {
const grouped = {};
for (let i = 0; i < catalog.length; i++) {
const book = catalog[i];
// User Editable Region
if (book.year === 'Unknown') {
if (!grouped['Unknown']) {
grouped['Unknown'] = [];
}
grouped['Unknown'].push(book);
continue;
}
// User Editable Region
}
}
Your browser information:
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3.1 Safari/605.1.15
Challenge Information:
Build a Heritage Library Catalog - Step 18