首页 > 解决方案 > 算法挑战:重复一个字符串

问题描述

刚刚学习 JS,正在经历算法挑战。

下面的代码应该重复一个字符串 (str) x (num) 次。

因此,例如 repeatStringNumTimes('*', 3) 应该是 '***'。下面的代码就是这样做的……但是在输出的开头出现了一个“未定义”的词。这是为什么?!我已经定义了所有变量...

function repeatStringNumTimes(str, num) {

    let len = str.length;
    let string;

for (let i = 0; i < num; i++) {

    for (let x = 0; x < len; x++) {

        string += str[x];

    }

}
return string;
}

console.log(repeatStringNumTimes('*', 10));

标签: javascript

解决方案


我已经定义了所有变量

是的,您定义了它,但没有初始化

javascript 中的默认初始化是undefined.

所以,let a;等于let a = undefined;
你应该用空字符串初始化你的字符串:

let string = '';  

只是一个说明:

现代 javascript 引擎具有用于该任务的String.prototype.repeat方法:

console.log('*'.repeat(10)); // **********

推荐阅读