这就是函数,它的作用是返回字符串中最短的单词:
function findShort(s) {
s = s.split(" ");
let shortest = s[0];
for (let i = 0; i < s.length; i++) {
if (s[i].length < shortest.length) shortest = s[i].length;
}
return shortest;
}
console.log(findShort("bitcoin take over the world"));
最后最短变量的值为 4 而不是 3,我不明白为什么它不移动到 3,因为我们会在某个时间点出现条件 i=3 if(3<4) shortest = 3; the condition is true so why won't we have it.
我知道解决这个问题的方法是这样的:
function findShort(s) {
s = s.split(" ");
let shortest = s[0];
for (let i = 0; i < s.length; i++) {
if (s[i].length < shortest.length) shortest = s[i];
}
return shortest.length;
}
console.log(findShort("bitcoin take over the world"));
但我想了解为什么第一种方法不起作用?
进入循环后,您已将最短的字符串从字符串更改为整数 当您访问 shotest.length 条件后,它会给您未定义的信息。这就是为什么您的第二个代码有效,因为您从未将 shotest 从字符串更改为数字。