Javascript can';t将if语句缩短为三元
我试图更习惯于使用三元运算符而不是if/else语句 下面发布的代码的第一个版本是有效的,但是第二个版本给了我一条错误消息,说他们的属性不是参数longest的length属性,但是因为我已经设置了空字符串的初始条件,所以长度应该是0 这是我的两个版本的代码。如果有人能找出我做错了什么,那就太好了 工作代码w/if语句Javascript can';t将if语句缩短为三元,javascript,if-statement,ternary-operator,Javascript,If Statement,Ternary Operator,我试图更习惯于使用三元运算符而不是if/else语句 下面发布的代码的第一个版本是有效的,但是第二个版本给了我一条错误消息,说他们的属性不是参数longest的length属性,但是因为我已经设置了空字符串的初始条件,所以长度应该是0 这是我的两个版本的代码。如果有人能找出我做错了什么,那就太好了 工作代码w/if语句 function findLongestWord(str) { var strSplit = str.split(' '); var longestWord = strS
function findLongestWord(str) {
var strSplit = str.split(' ');
var longestWord = strSplit.reduce(function(longest, currentWord) {
if(currentWord.length > longest.length)
return currentWord;
else
return longest;
}, "");
return longestWord;
}
console.log(findLongestWord("The quick brown fox jumped over the lazy dog"));
代码w/三元语句不起作用
function findLongestWord(str) {
var strSplit = str.split(' ');
var longestWord = strSplit.reduce(function(longest, currentWord) {
currentWord.length > longest.length ? currentWord : longest;
}, "");
return longestWord;
}
console.log(findLongestWord("The quick brown fox jumped over the lazy dog"));
我的错误消息是:
currentWord.length>最长.length?当前单词:最长;
^
TypeError:无法读取未定义的属性“length”
function findLongestWord(str) {
var strSplit = str.split(' ');
var longestWord = strSplit.reduce(function(longest, currentWord) {
return currentWord.length > longest.length ? currentWord : longest;
}, "");
return longestWord;
}
返回结果
如果不返回结果,则默认返回undefined。它将尝试获取未定义的长度,这就是它抛出错误的原因。您没有返回三元运算结果
return currentWord.length > longest.length ? currentWord : longest;
不是三元形式的
if(currentWord.length > longest.length)
return currentWord;
else
return longest;
因为您忘记包含return
语句:
return currentWord.length > longest.length ? currentWord : longest;
试试这个:
函数findLongestWord(str){
函数findLongestWord(str){
var strSplit=str.split(“”);
返回strSplit.reduce(函数(最长,当前字){
返回(currentWord.length>longest.length)?currentWord:longest;
});
}
document.write(findLongestWord(“敏捷的棕色狐狸跳过了懒狗”);
您需要返回三元的结果。返回条件?A:B
。如果答案中包含一些代码外的单词来解释您所做的事情和原因,那么答案总是更好。
return currentWord.length > longest.length ? currentWord : longest;