gpt4 book ai didi

javascript - 在 JavaScript 中查找最长和最短的单词

转载 作者:行者123 更新时间:2023-11-28 17:05:48 25 4
gpt4 key购买 nike

其中一个问题是找到字符串中最长的单词,另一个问题是找到字符串中最短的单词。

我试图找出解决它们之间的区别。我明白一切,除了为什么最长长度是“longeSTLength = 0”而不是“longeSTLength = newString [0] .length”。我尝试用它来解决它,但输出未定义。同样,对于“shortestLength”,如果我用“0”而不是“newString[0].length”初始化它,我会得到未定义的结果,但我不明白其背后的原因。

//code for longest string

function longestWord(string) {
let newString =string.split(" ");
let longestWord;
let longestlength= 0;
for(let i=0; i<newString.length; i++){
if(newString[i].length > longestlength){
longestlength = newString[i].length;
longestWord= newString[i];
}
}
return longestWord;
}

//code for shortest string
function shortestWord(string) {
var stringArray = string.split(" ");
var shortestWord;
var shortestLength = stringArray[0].length;
for(var i = 0; i < stringArray.length; i++){
if(stringArray[i].length < shortestLength){
shortestLength = stringArray[i].length;
shortestWord = stringArray[i];
}
}
return shortestWord;
}

最佳答案

使用reduce可以在一行内解决您的问题。

最长的单词:

string.split(' ').reduce((acc, cur) => acc.length >= cur.length ? acc : cur);

最短的单词:

string.split(' ').reduce((acc, cur) => acc.length <= cur.length ? acc : cur);

以下是您的代码可能无法工作的原因:在 shortestWord 中,您将当前最短长度设置为数组中第一个单词的长度,但您没有这样做将最短的单词设置为数组中的第一个单词,它仍然是未定义的。如果数组中的第一个单词恰好是最短的单词,则没有单词比它更短,因此不会将任何单词分配给 shortestWord 并且该函数将返回 undefined

解决方案:替换

var shortestWord;

var shortestWord = stringArray[0];

关于javascript - 在 JavaScript 中查找最长和最短的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55907230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com