尝试从函数内部向外部推送和/或试图使我的函数在console.log中吐出一行

问题描述

我正在执行此作业:

编写一个名为snapCrackle的函数,该函数带有一个参数:maxValue。 此函数应循环1到maxValue(包括)和 使用以下条件构建字符串:如果数字为奇数, 将“对齐”连接到字符串的末尾。如果数字是一个 5的倍数,将“ Crackle”连接到字符串的末尾。如果一个 数字既是奇数又是5的整数倍,并串联“ SnapCrackle”,以 字符串的结尾。如果数字既不是奇数也不是5的倍数, 将数字和“,”连接到字符串的末尾。这个 函数应该console.log()maxValue之后的最后一个字符串 循环的迭代。

这是我的解决方案:

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

有人告诉我:

一个好的开始!您拥有所需的一切,但应该是一个 串。对于Snap,Crackle和SnapCrackle,您不应显示 旁边的数字,尽管我感谢...的聪明和努力 它。我将提供解决此问题的提示是创建一个空字符串 并将结果连接起来!

如何将计数器推到数组,以便可以console.log一行,或者如何使函数本身输出一行?

解决方法

您已经做了所有的努力。进行较小的更改,您的答案就会很好。

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