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
Problemas
maps()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))); 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);Cometiste algunos errores:
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.
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);