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

165
Visualizações
¿Cómo puedo mapear una matriz anidada en JS?

Aquí está mi matriz:

 const main = [ [['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369']], [['02:20:21,369'], ['02:20:21,369']], [['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369']], [['02:20:21,369']], ];

y aquí está mi función:

 const convertor = (x) => { const splitted = x.split(':'); console.log(splitted); const converted = splitted[0] * 60 + splitted[1] * 60 + splitted[2]; return converted; };

Quiero mapear esta función en cada matriz anidada

Intenté esto pero obtuve un error:

 const resu = main.map((x) => { x.map((y) => { convertor(y); }); });

x.split no es una función

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

0

Problemas

  1. Tenga en cuenta que hay matrices anidadas de 3 niveles, por lo que debe haber 3 maps()
  2. se requiere return si usa {} en la función de flecha

 const main = [ [['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369']], [['02:20:21,369'], ['02:20:21,369']], [['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369']], [['02:20:21,369']], ]; const convertor = (x) => { const splitted = x.split(':'); const converted = splitted[0] * 60 + splitted[1] * 60 + splitted[2]; return converted; }; const resu = main.map((x) => { return x.map((y) => { return y.map((z) => { return convertor(z); }); }); }); console.log(resu);

Versión más corta

 main.map(x => x.map(y => y.map(convertor)));
about 4 years ago · Juan Pablo Isaza Relatório

0

 const main = [ [ ['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369'] ], [ ['02:20:21,369'], ['02:20:21,369'] ], [ ['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369'] ], [ ['02:20:21,369'] ], ]; const convertor = (x) => { const splitted = x.split(':'); //console.log(splitted); const converted = splitted[0] * 60 + splitted[1] * 60 + splitted[2]; return converted; }; const mappedMain = main.map(i => { return i.map(j => { return convertor(...j) }) }) //Or //const mappedMain = main.map(i => i.map(j => convertor(...j))) console.log(mappedMain);

about 4 years ago · Juan Pablo Isaza Relatório

0

Cometiste algunos errores:

  1. Expression (x) => { /* a few lines of code */ } requiere el uso de la palabra clave return para devolver el resultado, mientras que (x) => /* single line of code */ no lo requiere.

  2. Su matriz main es una matriz tridimensional, no bidimensional.

Prueba esto:

 const resu = main.map((x) => { return x.map((y) => { return y.map(convertor); }); });

O más fácil:

 const resu = main.map( (x) => x.map( (y) => y.map(convertor) ) ); 

 const main = [ [['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369']], [['02:20:21,369'], ['02:20:21,369']], [['02:20:21,369'], ['02:20:21,369'], ['02:20:21,369']], [['02:20:21,369']], ]; const convertor = (x) => { const splitted = x.split(':'); const converted = splitted[0] * 60 + splitted[1] * 60 + splitted[2]; return converted; }; const resu = main.map( (x) => x.map( (y) => y.map(convertor) ) ); console.log(resu);

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