我无法发现它!上面的代码在控制台“undefinedipsum”中返回
// At the end
// Call substring, passing "lorem ipsum dolor" to `input`, `6` to
// `start`, and `10` to `end`.
var substring = function(input, start, end){
var i;
var subset;
for(i=start; i<=end; i++){
subset += input[i]
}
return subset;
}
console.log(substring("lorem ipsum dolor",6,10))
答案 0 :(得分:4)
subset
未定义(并且由于您将其与字符串连接,undefined
将转换为字符串)。使用空字符串初始化subset
:
var substring = function(input, start, end){
var i;
var subset = "";
for(i=start; i<=end; i++){
subset += input[i];
}
return subset;
}
我认为真正的问题是,为什么当你已经存在一种非常好的String.prototype.substring
方法时,你自己写这个呢?
答案 1 :(得分:2)
初始化变量subset
。
var subset ="";
答案 2 :(得分:1)
您忘了初始化变量。
var subset = '';
否则你+=
就会发现一些不是字符串的东西。
即
var x;
console.log(x+''); // "undefined"
x = x + 'a';
console.log(x); // "undefineda"