este es mi código, mi último console.log devuelve un resultado indefinido, ¿pueden ayudarme a entender por qué?
Realmente no entiendo por qué sucedió esto, pero estoy seguro de que es algo realmente estúpido.
también, esta es la entrada ( elem_riga )
00100 11110 10110 10111 10101 01111 00111 11100 10000 11001 00010 01010 const fs = require("fs"); const input = fs.readFileSync("./demo.txt").toString(); const elem_riga = input.split("\n"); const most_common = (filtro_vincente, index) => { for (let i of filtro_vincente) { index++; const filtro_uno = filtro_vincente.filter((e) => e[index] === "1"); const filtro_due = filtro_vincente.filter((e) => e[index] === "0"); filtro_uno.length > filtro_due.length ? (filtro_vincente = filtro_uno) : (filtro_vincente = filtro_due); if (filtro_uno.length === filtro_due.length) { return console.log(filtro_uno); } } }; const most_uncommon = (filtro_vincente, index) => { for (let i of filtro_vincente) { index++; const filtro_uno = filtro_vincente.filter((e) => e[index] === "1"); const filtro_due = filtro_vincente.filter((e) => e[index] === "0"); filtro_uno.length < filtro_due.length ? (filtro_vincente = filtro_uno) : (filtro_vincente = filtro_due); if (filtro_uno.length === filtro_due.length) { return console.log(filtro_due); } } }; const xygen_generator_rating = (elem_riga, index) => { const filtro_uno = elem_riga.filter((e) => e[index] === "1"); const filtro_due = elem_riga.filter((e) => e[index] === "0"); filtro_uno.length > filtro_due.length ? most_common(filtro_uno, index) : most_common(filtro_due, index); }; const co2_scrubber_rating = (elem_riga, index) => { const filtro_uno = elem_riga.filter((e) => e[index] === "1"); const filtro_due = elem_riga.filter((e) => e[index] === "0"); filtro_uno.length < filtro_due.length ? most_uncommon(filtro_uno, index) : most_uncommon(filtro_due, index); }; const oxgen_gen = xygen_generator_rating(elem_riga, (index = 0)); const co2 = co2_scrubber_rating(elem_riga, (index = 0)); console.log(oxgen_gen, co2);most_common() y most_uncommon() no deberían devolver el resultado de console.log() , deberían devolver las variables filtro_uno y filtro_due .
xygen_generator_rating() y co2_scrubber_rating() necesitan devolver los resultados de los ternarios.
const most_common = (filtro_vincente, index) => { for (let i of filtro_vincente) { index++; const filtro_uno = filtro_vincente.filter((e) => e[index] === "1"); const filtro_due = filtro_vincente.filter((e) => e[index] === "0"); filtro_uno.length > filtro_due.length ? (filtro_vincente = filtro_uno) : (filtro_vincente = filtro_due); if (filtro_uno.length === filtro_due.length) { console.log(filtro_uno); return filtro_uno; } } }; const most_uncommon = (filtro_vincente, index) => { for (let i of filtro_vincente) { index++; const filtro_uno = filtro_vincente.filter((e) => e[index] === "1"); const filtro_due = filtro_vincente.filter((e) => e[index] === "0"); filtro_uno.length < filtro_due.length ? (filtro_vincente = filtro_uno) : (filtro_vincente = filtro_due); if (filtro_uno.length === filtro_due.length) { console.log(filtro_due); return filtro_due; } } }; const xygen_generator_rating = (elem_riga, index) => { const filtro_uno = elem_riga.filter((e) => e[index] === "1"); const filtro_due = elem_riga.filter((e) => e[index] === "0"); return filtro_uno.length > filtro_due.length ? most_common(filtro_uno, index) : most_common(filtro_due, index); }; const co2_scrubber_rating = (elem_riga, index) => { const filtro_uno = elem_riga.filter((e) => e[index] === "1"); const filtro_due = elem_riga.filter((e) => e[index] === "0"); return filtro_uno.length < filtro_due.length ? most_uncommon(filtro_uno, index) : most_uncommon(filtro_due, index); }; const input = `00100 11110 10110 10111 10101 01111 00111 11100 10000 11001 00010 01010`; const elem_riga = input.split("\n"); const oxgen_gen = xygen_generator_rating(elem_riga, (index = 0)); const co2 = co2_scrubber_rating(elem_riga, (index = 0)); console.log(oxgen_gen, co2);