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

117
Visualizações
Emparejamiento de símbolos en javascript

Tengo un texto y una matriz de símbolos , por lo que el código actual hace esto:

Encuentre un símbolo de la matriz de texto y si el siguiente elemento también es un símbolo, empuje ambos (el símbolo actual y el siguiente elemento, que también es un símbolo) con uno / entre ellos a una nueva matriz. (Haga un par de símbolos)

 const text = [ 'aaaa', 'BTC', '08', '324', 'ETH', '233', 'yyyy', '30000', 'XRP', 'xxxxxGG', 'llll', '546', 'BCH', 'LTC', 'xxxyyy', '435', 'XLM', 'DASH', 'COIN' ]; const symbols = ['XLM','XTZ','BTC','DASH','COIN','ETH','LTC','BNB','BCH','XRP']; //Return all the pair in text const set = new Set(symbols); const result = text.reduce((acc, curr, i, src) => { const next = src[i + 1]; if (set.has(curr) && set.has(next)) acc.push(`${curr}/${next}`); return acc; }, []); //output : //['BCH/LTC','XLM/DASH','DASH/COIN'],

Pero aquí, hay 3 elementos consecutivos en la matriz de texto, 'XLM', 'DASH' ,'COIN' , y como puede ver en la salida, devuelve dos pares de 3 símbolos consecutivos: 'XLM/DASH','DASH/COIN'

Quiero ignorarlo y si no hay otro símbolo después del tercer símbolo, simplemente devuelva el primer y el segundo símbolo en pares.

lo que quiero de la matriz de texto: ['BCH/LTC','XLM/DASH']

Y si hay un cuarto símbolo, devolver el tercer y cuarto símbolo en pares

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

0

Intenta usar el bucle for

 const text = [ 'aaaa', 'BTC', '08', '324', 'ETH', '233', 'yyyy', '30000', 'XRP', 'xxxxxGG', 'llll', '546', 'BCH', 'LTC', 'xxxyyy', '435', 'XLM', 'DASH', 'COIN' ]; const symbols = ['XLM', 'XTZ', 'BTC', 'DASH', 'COIN', 'ETH', 'LTC', 'BNB', 'BCH', 'XRP']; //Return all the pair in text const set = new Set(symbols); let result = [] for (let i = 0; i < text.length; i += 2) { let curr = text[i], next = text[i + 1]; if (set.has(curr) && set.has(next)) { result.push(`${curr}/${next}`) } } console.log(result)

about 4 years ago · Juan Pablo Isaza Relatório

0

Otro enfoque es uno adaptado del trabajo que ha realizado con reduce . La idea es agregar una variable, que rastreará si el último segundo par coincide con el primer par de la siguiente coincidencia inmediata, si existe.

 const text = ['XLM', 'BTC','08', '324','ETH', '233','yyyy', '30000','XRP', 'xxxxxGG','llll', '546','BCH', 'LTC','xxxyyy', '435','XLM', 'DASH','COIN', 'ETH']; const symbols = ['XLM', 'XTZ', 'BTC', 'DASH', 'COIN', 'ETH', 'LTC', 'BNB', 'BCH', 'XRP']; let lastSecondPairI = -1; // must not be a index in first iteration const set = new Set(symbols); const result = text.reduce((acc, curr, i, src) => { const next = src[i + 1]; if (set.has(curr) && set.has(next)){ // check if it does not match the current element (by i) if(lastSecondPairI !== i){ acc.push(`${curr}/${next}`); // update the value every time there's not a match lastSecondPairI = i+1; } } return acc; }, []); console.log(result)

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