Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

218
Views
TypeError: no se puede leer la propiedad '1' de undefined (JavaScript)

Estoy haciendo algunas funciones que recorren mi matriz 2D y verifican si el valor en un índice coincide con el parámetro que pasé. Pero sigo recibiendo este error de "Error de tipo: no se puede leer la propiedad '1' de indefinido en findBookByTitle"

Alguna sugerencia, he probado de todo :(

 const BooksInfo = []; function addBook(BookID, BookTitle, Author, Price, Quantity){ let newBook = [BookID,BookTitle,Author,Price,Quantity] BooksInfo.push(newBook); } addBook(1,"Start with Why","Simon Sinek", 80.0, 13); addBook(2, "But how do it know", "J. Clark Scott", 59.9, 22); addBook(3, "Clean Code", "Rober Cecil Martin", 50.0, 5); addBook(4, "Zero to One", "Peter Thiel", 45.0, 12); addBook(5, "You don't know JS", "Kyle Simpson", 39.9, 9); //console.log(BooksInfo); function findBookByID(BookID){ for(i=0; i <= BooksInfo.length; i++){ if(BooksInfo[i][0] == BookID){ console.log(BooksInfo[i]) } } } function findBookByTitle(BookTitle){ for(i=0; i <= BooksInfo.length; i++){ if(BooksInfo[i][1] == BookTitle){ console.log(BooksInfo[i]) } } } function findBookByAuthor(Author){ for(i=0; i <= BooksInfo.length; i++){ if(BooksInfo[i][2] == Author){ console.log(BooksInfo[i]) } } } findBookByAuthor("Kyle Simpson"); findBookByID(1); findBookByTitle("But how do it know");
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

function findBookByTitle(BookTitle){ for(i=0; i < BooksInfo.length; i++){ if(BooksInfo[i][1] == BookTitle){ console.log(BooksInfo[i]) } } }

dado que está recorriendo desde el índice 0 hasta el último índice, no puede incluir el último número en booksInfo.length. por ejemplo: aquí, su booksInfo.length = 5, pasando del índice 0 al 5, es 6 veces la iteración para i(0,1,2,3,4,5)

about 4 years ago · Juan Pablo Isaza Report

0

Haz tu vida mucho más fácil (y tu código mucho más conciso y legible) usando objetos en lugar de representar cada libro en una matriz:

 const BooksInfo = []; function addBook(BookID, BookTitle, Author, Price, Quantity){ let newBook = {BookID,BookTitle,Author,Price,Quantity}; BooksInfo.push(newBook); } addBook(1,"Start with Why","Simon Sinek", 80.0, 13); addBook(2, "But how do it know", "J. Clark Scott", 59.9, 22); addBook(3, "Clean Code", "Rober Cecil Martin", 50.0, 5); addBook(4, "Zero to One", "Peter Thiel", 45.0, 12); addBook(5, "You don't know JS", "Kyle Simpson", 39.9, 9); function findBookByID(BookID){ return BooksInfo.find(book => book.BookID === BookID); } function findBookByTitle(BookTitle){ return BooksInfo.find(book => book.BookTitle === BookTitle); } function findBookByAuthor(Author){ return BooksInfo.find(book => book.Author === Author); } console.log(findBookByAuthor("Kyle Simpson")); console.log(findBookByID(1)); console.log(findBookByTitle("But how do it know"));

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!