Skip to content
Advertisement

Why does returning a console.log() return undefined?

this is my code, my last console.log return an undefined result, can you help me to understand why?

I don’t really understand why this happened but I’m sure that is a really stupid thing

also, this is the input(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);

Answer

most_common() and most_uncommon() shouldn’t return the result of console.log(), they should return the variables filtro_uno and filtro_due.

xygen_generator_rating() and co2_scrubber_rating() need to return the results of the ternaries.

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);
Advertisement