有"未定义"出现在第二个函数的末尾,我无法弄清楚原因。 这是我的代码
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(len){
for(var i=1;i<=len; i++){
console.log(makeLine(i));
}
}
// test your code by uncommenting the following line
console.log(buildTriangle(10));
答案 0 :(得分:7)
如果您没有明确地从函数中返回值,会隐式返回undefined
。
您记录buildTriangle
的返回值,即undefined
:
console.log(buildTriangle(10));
答案 1 :(得分:1)
Timo回答为什么。这是一种方法来修复代码,以便返回结果。
定义一个数组,并在循环的每次迭代中将makeLine
的结果推送到数组。然后返回连接的数组。
function buildTriangle(len){
var arr = [];
for (var i=1;i<=len; i++){
arr.push(makeLine(i))
}
return arr.join('');
}
答案 2 :(得分:0)
在最后一行删除控制台。如果您调用任何函数,则无需控制台。
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(len){
for(var i=1;i<=len; i++){
console.log(makeLine(i));
}
}
// test your code by uncommenting the following line
buildTriangle(10)
如果要在console.log中调用该函数。然后从buildTriangle
函数返回一些内容。
function buildTriangle(len){
for(var i=1;i<=len; i++){
console.log(makeLine(i));
}
return 'done';
}
console.log(buildTriangle(10));