我知道,这是一个奇怪的!但为什么这不起作用?
function getStringLength(string) {
// see how many substrings > 0 can be built
// log that number & return
var subString = string.slice();
var counter = 0;
while (subString !== '') {
counter++;
subString = subString.slice(counter);
}
return counter;
}
var output = getStringLength('hello');
console.log(output); // --> expecting 5, but getting 3 (??)
Run Code Online (Sandbox Code Playgroud)
我真的想用切片来做!最初的挑战是不使用length属性,我想出来了,这很好用:
function getStringLength(string) {
var long = 0;
while (string[long] !== undefined) {
long++;
}
return long;
}
Run Code Online (Sandbox Code Playgroud)
你正在改变你的字符串,这应该适合你
function getStringLength(string) {
// see how many substrings > 0 can be built
// log that number & return
var subString = string.slice();
var counter = 0;
while (subString !== '') {
counter++;
subString = subString.slice(1);
}
return counter;
}
var output = getStringLength('hello');
console.log(output); // 5Run Code Online (Sandbox Code Playgroud)
主要区别在于我在做什么
subString = subString.slice(1);
Run Code Online (Sandbox Code Playgroud)
代替
subString = subString.slice(counter);
Run Code Online (Sandbox Code Playgroud)
总长度减少1