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

175
Visualizações
React Native: compare versiones de aplicaciones y devuelva cadenas principales o secundarias

Necesito comparar dos versiones, la local, que está instalada en el dispositivo del usuario, y la versión, que está disponible en las tiendas de aplicaciones. Actualmente, estoy tratando de lograr el resultado deseado usando la biblioteca compareVersions . Eso funciona muy bien, devuelve la cadena 'nueva' si la versión remota es mayor. Pero necesito un poco más de salida que estoy tratando de obtener, por ejemplo, si la versión local es 1.0.5 y la remota es 1.0.6 (cambia el último número), entonces necesito devolver 'menor', y si local la versión es 1.0.5 y la remota es 1.1.0 (cambia el número del medio y el último), luego devuelve 'principal'. La idea principal para mí es obtener un resultado diferente en estos casos, por lo que, según la verificación de la versión, puedo actualizar la interfaz de usuario en consecuencia. Cualquier ayuda muy apreciada!

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

0

Una vez escribí una función que compara dos versiones, podrías adaptarla en lugar de devolver un booleano, devolver una cadena:

 const DEFAULT_VERSION = '0.0.0'; export const isLatestGreaterThanCurrent = ({ latest = DEFAULT_VERSION, current = DEFAULT_VERSION } = {}) => { const [latestMajor, latestMinor, latestPatch] = latest.split('.').map((s) => parseInt(s, 10)); const [currentMajor, currentMinor, currentPatch] = current.split('.').map((s) => parseInt(s, 10)); return ( latestMajor > currentMajor || (latestMajor === currentMajor && latestMinor > currentMinor) || (latestMajor === currentMajor && latestMinor === currentMinor && latestPatch > currentPatch) ); };

y por supuesto, sus pruebas:

 import { isLatestGreaterThanCurrent } from '../isLatestGreaterThanCurrent'; import each from "jest-each"; describe('isLatestGreaterThanCurrent', () => { each([ // [latest, current] ['0.0.0', '0.0.0'], ['0.0.0', '0.0.1'], ['0.0.1', '0.1.0'], ['0.1.0', '0.1.0'], ['0.1.0', '0.1.1'], ['0.1.1', '1.0.0'], ['1.0.0', '1.0.0'], ['1.0.0', '1.0.1'], ['1.0.1', '1.1.0'], ['1.1.0', '1.1.0'], ['1.1.0', '1.1.1'], ['1.1.1', '1.1.1'], ]).test('latest %s is NOT greater than current %s', (latest, current) => { expect(isLatestGreaterThanCurrent({latest, current})).toBeFalsy(); }); each([ // [latest, current] ['0.0.1', '0.0.0'], ['0.1.0', '0.0.1'], ['0.1.1', '0.1.0'], ['1.0.0', '0.1.1'], ['1.0.1', '1.0.0'], ['1.1.0', '1.0.0'], ['1.1.0', '1.0.1'], ['1.1.1', '1.1.0'], ]).test('latest %s is greater than current %s', (latest, current) => { expect(isLatestGreaterThanCurrent({latest, current})).toBeTruthy(); }) });
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