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

148
Views
¿Por qué mi matriz collRect no obtiene elementos?

Me uní recientemente a un curso fullstack. Va muy bien hasta ahora (aunque es muy difícil), incluso en JS donde solía estar atascado mucho... Bueno, eso es lo que pensé, ahora mismo estoy totalmente perdido en un ejercicio.

¿Alguien puede revisar este violín y decirme dónde está mi (s) error (es)?

El objetivo del ejercicio es hacer una clase (rectángulo), un método para verificar la colisión (está bien), la parte donde tengo un problema es donde necesito verificar la colisión de 1000 rectángulos de tamaños aleatorios, sus creaciones están bien pero el cheque es donde estoy atascado.

 let randomRect = []; let collRect = []; function colCheck(n) { for (let i = 0; i < n; i++) { randomRect[i] = Rectangle; Rectangle = {}; Rectangle.name = "Rectangle " + i; Rectangle.topLeftXPos = Math.floor(Math.random() * 10); Rectangle.topLeftYPos = Math.floor(Math.random() * 10); Rectangle.width = Math.floor(Math.random() * 10); Rectangle.length = Math.floor(Math.random() * 10); randomRect.push(Rectangle); } for (let j = 0; j > n; j--) { if (randomRect[i].collides(randomRect[j])) { collRect.push(Rectangle); console.log("Collision detected") } } } colCheck(1000); console.log(collRect);

El método de colisión está en jsfiddle. Lo siento si cometí algunos errores ortográficos.

Aquí está mi violín: https://jsfiddle.net/ou5wyrp8/3/

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Hola, comencé a hacer algunas ediciones para empujarte en la dirección correcta. Su primer error fue la forma en que intenta usar una clase. Al crear objetos a partir de clases, desea utilizar la new palabra clave, el nombre de la clase y luego tratar el nombre de la clase como una función. Tenga en cuenta que la función que se ejecuta cuando se usa new es el constructor, por ejemplo

 let newRect = new Rectangle(topLeftXPos, topLeftYPos, width, length)

A continuación, hubo problemas en su bucle for. Para empezar, supuse que quería que el bucle j estuviera anidado dentro del bucle i, lo cual no fue así.

Fui tan lejos para arreglar estas dos cosas. Todo lo que queda es que randomRect y empujes las colisiones para collRect

 class Rectangle { constructor(topLeftXPos, topLeftYPos, width, length) { this.topLeftXPos = topLeftXPos; this.topLeftYPos = topLeftYPos; this.width = width; this.length = length; } collides(otherRectangle) { if (this.topLeftXPos === otherRectangle.topLeftXPos) { return true; } else if (this.topLeftYPos === otherRectangle.topLeftYPos) { return true; } else { return false; } } } let randomRect = []; let collRect = []; function colCheck(n) { for (let i = 0; i < n; i++) { //populate randomRect let newRectangle = new Rectangle( //top Math.floor(Math.random() * 10), //left Math.floor(Math.random() * 10), //width Math.floor(Math.random() * 10), //length Math.floor(Math.random() * 10)) randomRect.push(newRectangle); } console.log(randomRect) for( let i = 0; i <n;i++){ for (let j = n-1; j > 0; j--) { if (randomRect[i].collides(randomRect[j])) { collRect.push(randomRect[i]); console.log("Collisaaaion detected") } } } } colCheck(1000); console.log(collRect);
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!