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

336
Views
Matriz especial: una matriz es especial si cada índice par contiene un número par y cada índice impar contiene un número impar

¿Cuál es el problema de este código? está mostrando falso. esto debería ser cierto.

 function isSpecialArray(arr) { for(i=0; i<arr.length; i++){ return ((arr[i % 2 == 0]) % 2 == 0) && ((arr[i % 2 !==0]) % 2 !== 0) } } console.log(isSpecialArray([2, 7, 4, 9, 6, 1, 6, 3])) // false??
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Puede simplificar su código y evitar bucles innecesarios tan pronto como se encuentre el primer elemento que rompe la regla.

Usando un bucle for

 function isSpecial(arr) { for (let i = 0; i < arr.length; i++) { if (arr[i] % 2 !== i % 2) return false } return true; }

Usando Array.prototype.every

 function isSpecial(arr) { return arr.every((item, index) => item % 2 === index % 2); }
about 4 years ago · Juan Pablo Isaza Report

0

Su return ((arr[i % 2 == 0]) % 2 == 0) && ((arr[i % 2 !==0]) % 2 !== 0) la sintaxis es incorrecta. Espero que la siguiente función cumpla con sus requisitos.

Lógica

  • Recorra la matriz, verifique la condición "especial" de cada nodo y guárdelo en isNodeSpecial
  • La condición "especial" significa que el índice par tiene un número par y el índice impar tiene un número impar.
  • Inicialice una variable fuera del ciclo que contiene el estado isSpecial de la matriz.
  • Actualice la variable isSpecial como lógica y de isSpecial y isNodeSpecial .
  • Cada vez que un solo nodo viola la condición, isSpecial se establece en falso y sale del bucle.

 function isSpecialArray(arr) { let isSpecial = true; for (i = 0; i < arr.length && isSpecial; i++) { const isNodeSpecial = (i % 2 === 0) ? arr[i] % 2 === 0 : arr[i] % 2 === 1; isSpecial = isSpecial && isNodeSpecial; } return isSpecial; } console.log(isSpecialArray([2, 7, 4, 9, 6, 1, 6, 3])); // true console.log(isSpecialArray([2, 7, 4, 10, 6, 1, 6, 3]));// false

about 4 years ago · Juan Pablo Isaza Report

0

Puede comprobar si algún elemento no cumple la condición e inmediatamente devolver false . Si todos los elementos cumplen la condición, devuelve true . Esa es la mejor solución cuando se trata de rendimiento. Puedes cambiar tu código así:

 function isSpecialArray(arr) { for (i = 0; i < arr.length; i++) { if (arr[i] % 2 !== i % 2) return false; } return true; } console.log(isSpecialArray([2, 7, 4, 9, 6, 1, 6, 3])) //true console.log(isSpecialArray([1, 7, 4, 9, 6, 1, 6, 3])) //false

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!