Javascript For循环不迭代校正 函数最长字(sen){ 设arr=sen.split(“”); 让最长的话; for(设i=0;i计数器){ 计数器=arr[i]。长度; longestWord=arr[i]; } } 返回最长的单词; };

Javascript For循环不迭代校正 函数最长字(sen){ 设arr=sen.split(“”); 让最长的话; for(设i=0;i计数器){ 计数器=arr[i]。长度; longestWord=arr[i]; } } 返回最长的单词; };,javascript,Javascript,函数的目标是循环遍历数组并查找最长的单词。我一直在看这一切似乎都是正确的,虽然,很明显有些东西是错误的,但我没有看到它 这是因为您在每次迭代时都将count设置为零,即重写为 function LongestWord(sen) { let arr = sen.split(' '); let longestWord; for (let i = 0; i < arr.length; i++) { let counter = 0; if

函数的目标是循环遍历数组并查找最长的单词。我一直在看这一切似乎都是正确的,虽然,很明显有些东西是错误的,但我没有看到它

这是因为您在每次迭代时都将count设置为零,即重写为

function LongestWord(sen) { 
    let arr = sen.split(' ');
    let longestWord;
    for (let i = 0; i < arr.length; i++) {
        let counter = 0;
        if (arr[i].length > counter) {
            counter = arr[i].length;
            longestWord = arr[i];
        }
    }
    return longestWord;
};
函数最长字(sen){
设arr=sen.split(“”);
让最长的话;
让计数器=0;//移动到这里!!!
for(设i=0;i计数器){
计数器=arr[i]。长度;
longestWord=arr[i];
}
}
返回最长的单词;

})

每次迭代都要重新澄清计数器

function LongestWord(sen) { 
let arr = sen.split(' ');
let longestWord;

let counter = 0;  // Moved here!!!

for (let i = 0; i < arr.length; i++) {
    if (arr[i].length > counter) {
        counter = arr[i].length;
        longestWord = arr[i];
    }
}
return longestWord;
函数最长字(sen){
设arr=sen.split(“”);
让最长的话;
设计数器=0;
for(设i=0;i计数器){
计数器=arr[i]。长度;
longestWord=arr[i];
}
}
返回最长的单词;
};

您需要在loo之外定义计数器,因为您需要它来保持长度

函数最长字(sen){
设arr=sen.split(“”);
让最长的话;
设计数器=0;
for(设i=0;i计数器){
计数器=arr[i]。长度;
longestWord=arr[i];
}
}
返回最长的单词;
}

log(longestWord('orange banana potatoe hackfleischbällchen rice'))
您需要使用计数器out-of-for循环。因为当您每次在for循环中使用时,它都会被重新初始化

函数最长字(sen){
设arr=sen.split(“”);
让最长的话;
设计数器=0;
for(设i=0;i计数器){
计数器=arr[i]。长度;
longestWord=arr[i];
}
}
返回最长的单词;
};
console.log(LongestWord('heya12'))
函数最长字(sen){
设arr=sen.split(“”);
让最长的话;
让计数器=0;//您需要将计数器放置在循环的外部
for(设i=0;i计数器){
计数器=arr[i]。长度;
longestWord=arr[i];
}
}
返回最长的单词;
};

log(LongestWord(‘这有点问题’)我知道这是一种完全不同的方法,但您可以使用更简洁的代码实现相同的结果,而无需应用任何循环结构:

function LongestWord(sen) { 
    let arr = sen.split(' ');
    let longestWord;
    let counter = 0;

    for (let i = 0; i < arr.length; i++) {
        if (arr[i].length > counter) {
            counter = arr[i].length;
            longestWord = arr[i];
        }
    }
    return longestWord;
};

像这样的怎么样

function LongestWord(sen) { 
  let arr = sen.split(' ');
  return arr.sort(function(a, b){
    // Sort Descending
    return b.length - a.length;
  })[0]; // Take first and longest element
}

每次循环迭代都会将计数器重置为0。在
循环的
之前,将计数器设置为0。作为一名开发人员,我学到的最重要的东西是使用调试器和单步执行代码。
# cat longest_word.js
function longestWord(str) {
        return str.split(' ').reduce(function (acc, word) {
                return acc.length > word.length ? acc : word;
        });
}

console.log(longestWord('the quick brown fox jumps over the lazy dog'));
# node longest_word.js
jumps
#