Console.logging и затем возвращает console.log в функции javascript - PullRequest
0 голосов
/ 04 марта 2020

Извинения, я уверен, что об этом уже спрашивали, но я не могу сформулировать это правильно, чтобы найти ответ. Я пытался узнать Javascript от Удеми, и есть вопрос, где вы должны вернуть этот треугольник, сделанный из звездочек, где первая строка - 1 звездочка, 2-я строка - 2, 3-я строка - 3 и т. Д. c до 10 строк звездочки. см. Эту ссылку, если я не достаточно ясно

Я могу console.log треугольника, но я не могу вернуть его, как только консоль зарегистрировала его. Пожалуйста, может кто-нибудь объяснить, где мне нужно разместить возврат. Я перепробовал все, что мог придумать, и продолжаю получать неопределенный ответ или нет ответа, как только я добавляю возвращаемое значение для функции buildTriangle.

    
   /*
     * Programming Quiz: Build A Triangle (5-3)
 */

// creates a line of * for a given length
function makeLine(length) {
    var line = "";
    for (var j = 1; j <= length; j++) {
        line += "* ";
    }
    return line + "\n";
   
}

// your code goes here.  Make sure you call makeLine() in your own code.
function buildTriangle(length){
    var tri='';
    for(i=0;i<=length;i++){
        tri=console.log(makeLine(i));
    }
    return tri;
    
}


// test your code by uncommenting the following line
buildTriangle(10);

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

Когда вы вызываете метод console.log(), он возвращает undefined (что вы можете увидеть в консоли spe c). Вместо этого вам нужно добавить возврат makeLine(i) к вашей строке tri (используя +=) каждый раз, когда ваш l oop повторяется (чтобы собрать его в один большой треугольник). Затем, как только вы закончите, верните эту встроенную строку.

В дополнение к этому, вы должны использовать var/let перед вашими объявлениями в вашем l oop и запустить l oop в i=1, так как вы не хотите, чтобы в полученной строке была строка с нулем звезд:

/*
 * Programming Quiz: Build A Triangle (5-3)
 */

// creates a line of * for a given length
function makeLine(length) {
  let line = "";
  for (let j = 1; j <= length; j++) {
    line += "* ";
  }
  return line + "\n";

}

// your code goes here.  Make sure you call makeLine() in your own code.
function buildTriangle(length) {
  let tri = '';
  //   \/ -- add let/var here (doesn't effect output in this case) and initialize it to 1
  for (let i = 1; i <= length; i++) {
    tri += makeLine(i); // call makeLine(i) which returns a string
  }
  return tri; // return the triangle string
}


// test your code by uncommenting the following line
console.log(buildTriangle(10)); // log the string 
0 голосов
/ 04 марта 2020

Сначала вы должны построить треугольник, а затем записать его, то есть объединить все строки в вашей переменной треугольника и вернуть следующее:


// creates a line of * for a given length
function makeLine(length) {
  var line = "";
  for (var j = 1; j <= length; j++) {
      line += "* ";
  }
  return line + "\n";

}

// your code goes here.  Make sure you call makeLine() in your own code.
function buildTriangle(length){
  var tri='';
  for(i=0;i<=length;i++){
      tri+=(makeLine(i));
  }
  return tri;
}


// test your code by uncommenting the following line
console.log(buildTriangle(10));
...