Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

157
Vistas
Determine si la matriz está en orden Y el último elemento es 0

¿Cómo puedo determinar cuándo los primeros números X de una matriz están en orden Y el último elemento en 0? es decir, la matriz es

 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0

Actualmente tengo esto, pero depende de que la matriz sea siempre la misma, lo cual no es muy flexible.

 const sorted = (array) => { const solved = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] return (JSON.stringify(array) == JSON.stringify(solved)) }
about 4 years ago · Santiago Gelvez
3 Respuestas
Responde la pregunta

0

Primero defina una función genérica para verificar que un segmento de una matriz esté ordenado, luego defina una segunda función que use la primera para ver que los primeros valores están ordenados y agregue una verificación para el valor final:

 function isSegmentSorted(array, start=0, end=array.length) { for (let i = start + 1; i < end; i++) { if (array[i - 1] > array[i]) return false; } return true; } function isSortedWithExtraZero(array) { return array.at(-1) === 0 && isSegmentSorted(array, 0, array.length - 1); } var array = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0]; console.log(isSortedWithExtraZero(array));

about 4 years ago · Santiago Gelvez Denunciar

0

Podrías hacer algo tan simple como esto:

 const checkArray = (arr) => { if(arr[arr.length-1] != 0){ return false; } const nums = arr.slice(0, arr.length - 1); const sortedArr = [...nums].sort((a, b) => a - b); for (let i = 0; i < nums.length; i++) { if(nums[i] != sortedArr[i]){ return false; } } return true; } console.log(checkArray([1,2,3,0])); // true console.log(checkArray([1,2,3,4])); // false console.log(checkArray([1,3,2,0])); // false

Básicamente los pasos son:

  • Compruebe si el último elemento es 0 , de lo contrario, realice una devolución anticipada.
  • Cree una versión ordenada de la primera parte de la matriz (la que tiene los números)
  • Compruebe si la parte de los números es igual a la matriz ordenada . Si algún elemento es diferente devuelve falso

Al final, devuelve verdadero solo si se verifican todas las condiciones.

Esto es lo suficientemente genérico como para que, si en el futuro desea cambiar el tipo de ordenación, simplemente pueda actuar sobre la función de sort (por ejemplo, si desea que sea descendente).

about 4 years ago · Santiago Gelvez Denunciar

0

Podemos usar every las funciones para eso. Con !idx excluimos el primer índice 0, luego verificamos si idx es menor que la longitud de su matriz. Si es así, verifique si está ordenado, de lo contrario verifique que sea igual a cero.

 const solutions = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0]; const sorted = solutions.every((val, idx, arr) => !idx || (idx < solutions.length - 1 ? arr[idx - 1] <= val : val === 0) ); console.log(sorted);

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda