• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

85
Views
Patrón de JavaScript para mostrar en el navegador

Estoy tratando de hacer un patrón de Javascript que acepte una entrada de usuario en forma de dígito y devuelva el siguiente resultado:

 ******1 ****1 2 1 ***1 2 2 1 **1 2 3 2 1 *1 2 3 3 2 1 1 2 3 4 3 2 1 *1 2 3 3 2 1 **1 2 3 2 1 ***1 2 2 1 ****1 2 1 *****1

Sin embargo, estoy atascado en un patrón que se ve así:

 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1

Este es el código que escribí hasta ahora.

 function selectNo() { var selectedNo = document.getElementById("select-number").value; for (var i = 1; i <= selectedNo; i++) { for (var l = 0; l < (selectedNo - i); l++) document.write("&nbsp;&nbsp; ") for (var j = 1; j <= i; j++) document.write(" " + j) for (var k = i - 1; k >= 1; k--) document.write(" " + k) document.write("<br>"); } for (var i = 1; i <= selectedNo; i++) { for (var l = 0; l < i; l++) document.write("&nbsp;&nbsp; ") for (var j = 1; j <= (selectedNo - i); j++) document.write(" " + j) for (var k = selectedNo - i - 1; k >= 1; k--) document.write(" " + k) document.write("<br>"); } }
 <input type="number" id="select-number" placeholder="Select your number"> <button onclick="selectNo()">Print the pattern</button>

¿Alguna sugerencia sobre cómo alcanzar el patrón objetivo? ¡Gracias!

almost 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Cree una función que devuelva la matriz de los siguientes números y luego puede pasar del 1 al número de entrada. Entonces solo necesitas unir las matrices.

 function line(len) { const middle = (len - 1) / 2; const a = []; for(let i = 0; i < len; i++) { if(i < middle) { a.push(i + 1); } else { a.push(len - i); } } return a; } function diamond(len) { l = len * 2 - 1; const d = []; for(let i = 0; i < l; i++) { const a = line(i + 1).map(v => `${v} `); const b = new Array(l - a.length).fill('&nbsp;').concat(a).join(''); d.push(b); } for(let i = l - 2; i >= 0; i--) { const a = line(i + 1).map(v => `${v} `); const b = new Array(l - a.length).fill('&nbsp;').concat(a).join(''); d.push(b); } return d.join('<br/>'); } function main() { document.getElementById("result").innerHTML = diamond(document.getElementById("val").value); }
 <input id="val" type="number" placeholder="Select your number"> <button onclick="main()">Print the Pattern</button> <div id="result" style="font-family: monospace;"></div>

almost 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error