Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

156
Visualizações
Compara 2 o más números consecutivos en una matriz

Tengo una matriz: A = [ 2, 2, 0, 0, -1, 1, -1, -1, -1 ]

Quiero poder devolver verdadero en los casos en que 2 o más números consecutivos sean iguales. Entonces, en esta matriz, la matriz de salida debe tener 5 verdaderos con [2,2], [0,0], [-1,-1,-1], [-1,-1] y [-1,-1 ].

Hasta ahora, he usado slice y map en la matriz a través de 2 números consecutivos y obtuve 4 verdaderos.

 const solution = (A) => { let compare = A.slice(1).map((n,i) => { return (n === A[i]) }) console.log(compare) // => [ true, false, true, false, false, false, true, true ] } const A = [ 2, 2, 0, 0, -1, 1, -1, -1, -1 ]; solution(A);

Pero lograr que ese quinto sea verdadero en [-1,-1,-1] me está eludiendo.

Actualmente, la salida de comparación que tengo solo pasa por 2 números consecutivos, por lo que me da 4 verdaderos. Mi pregunta es básicamente cómo verificar los 3 o más números consecutivos.

Mi final sería algo como

 compare.filter(word => word === true).length

para obtener 5.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Quizás lo que realmente sería útil son los grupos :

 const findGroups = (arr) => arr.reduce((result, value, index) => { let windowLength = 2; while (arr[index + windowLength - 1] === value) { result.push(arr.slice(index, index + windowLength)); windowLength++; } return result; }, []); console.log(findGroups([2, 2, 0, 0, -1, 1, -1, -1, -1])); // [[2, 2], [0, 0], [-1, -1], [-1, -1, -1], [-1, -1]] console.log(findGroups([4, 4, 4, 4])); // [[4, 4], [4, 4, 4], [4, 4, 4, 4], [4, 4], [4, 4, 4], [4, 4]]

Eso le da una matriz de los grupos de valores consecutivos. Si solo desea 5 , es .length , o puede calcularlo directamente en lugar de crear matrices innecesarias:

 const findGroupCount = (arr) => arr.reduce((result, value, index) => { let windowLength = 2; while (arr[index + windowLength - 1] === value) { result++; windowLength++ } return result; }, 0); console.log(findGroupCount([2, 2, 0, 0, -1, 1, -1, -1, -1])); // 5 console.log(findGroupCount([4, 4, 4, 4])); // 6

about 4 years ago · Juan Pablo Isaza Relatório

0

Comprobación de cadenas duplicadas en la matriz de JavaScript

La pregunta/respuesta anterior es un excelente lugar para comenzar. Pero explícitamente lo que quieres:

 const A = [ 2, 2, 0, 0, -1, 1, -1, -1, -1 ] let findDuplicates = arr => arr.filter((item, index) => arr.indexOf(item) != index) const solutionArray = findDuplicates(A).map((e) => true); console.log(solutionArray); // [true, true, true, true, true]

Para hacer esto consecutivamente, su código funciona como se esperaba:

[2,2] Verdadero [2,0] Falso [0,0] Verdadero [0,-1] Falso [-1,1] Falso [1,-1] Falso [-1,-1] Verdadero [-1 ,-1] Verdadero

Esas son las comparaciones en orden comparando 2 números consecutivos. La quinta verdad que esperas es comparar 3 números consecutivos.

¿Está pidiendo una solución que también compare (n) número de números consecutivos?

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda