为什么这个函数返回4而不是3? (javascript)

问题描述 投票:0回答:1

这就是函数,它的作用是返回字符串中最短的单词:

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"));

但我想了解为什么第一种方法不起作用?

javascript string function substring
1个回答
0
投票

进入循环后,您已将最短的字符串从字符串更改为整数 当您访问 shotest.length 条件后,它会给您未定义的信息。这就是为什么您的第二个代码有效,因为您从未将 shotest 从字符串更改为数字。

© www.soinside.com 2019 - 2024. All rights reserved.