Estoy haciendo esta tarea:

Escriba una función llamada snapCrackle que tome un parámetro: maxValue. Esta función debe recorrer 1 hasta maxValue (inclusive) y construir una cadena con las siguientes condiciones: Si un número es impar, concatenar "Snap" al final de la cadena. Si un número es múltiplo de 5, concatene "Crackle" al final de la cadena. Si un número es impar y múltiplo de 5, concatene "SnapCrackle" al final de la cadena. Si un número no es impar ni múltiplo de 5, concatena el número y "," al final de la cadena. Esta función debe console.log () la cadena final después de las iteraciones de maxValue del bucle.

Esta es mi solución:

let c = "Snap, ";
let i = "Crackle, ";
let x = "SnapCrackle, ";
let b = ",";
let maxValue = 20;
let counter = 1;
let output = "";
let list = ["snap", "crackle", "snapCrackle"];
function snapCrackle() {
  while (counter <= maxValue) {
    if (counter % 5 === 0 && counter % 2 !== 0) {
      console.log(x + counter);
    } else if (counter % 5 === 0) {
      console.log(i + counter);
    } else if (counter % 5 === 0 || counter % 2 !== 1) {
      console.log(counter + b);
    } else if (counter % 2 !== 0) {
      console.log(c + counter);
    }
    counter++;
  }
}
console.log();
return snapCrackle();
let results = " ";
console.log(snapCrackle());

Me dijeron:

¡Gran comienzo! Tienes todo lo que necesitas, pero debería ser una sola cadena. Para Snap, Crackle y SnapCrackle, no debería mostrar el número junto a él, aunque aprecio su inteligencia y esfuerzo. ¡Una pista que daré para resolver esto es crear una cadena vacía y concatenar los resultados en ella!

¿Cómo empujo mi contador a una matriz para poder console.log una sola línea, o cómo puedo hacer que la función en sí genere una sola línea?

1
brianfuit1 23 ago. 2020 a las 06:41

1 respuesta

La mejor respuesta

Has hecho todo el trabajo duro. Pequeños cambios y estás bien con tu respuesta.

let c = "Snap";
let i = "Crackle";
let x = "SnapCrackle";
let maxValue = 20;
let counter = 1;
// let output = ""; // not required rather use an array
// let list = ["snap", "crackle", "snapCrackle"]; // not required
let outPutArr = [];
function snapCrackle() {
  while (counter <= maxValue) {
    if (counter % 5 === 0 && counter % 2 !== 0) {
      outPutArr.push(x);
    } else if (counter % 5 === 0) {
      outPutArr.push(i);
    } else if (counter % 5 === 0 || counter % 2 !== 1) {
      outPutArr.push(counter);
    } else if (counter % 2 !== 0) {
      outPutArr.push(c);
    }
    counter++;
  }
  return outPutArr // return the created array from conditions 
}
console.log(snapCrackle().join()); // Return the join of the array
-1
Dharman 23 ago. 2020 a las 04:14