Javascript 为什么console.log工作但不返回?
我正在做这个卡塔: 编写一个函数,该函数接收一个或多个单词的字符串,并返回相同的字符串,但所有五个或更多字母的单词都反转,就像这个Kata的名称一样。传入的字符串将仅由字母和空格组成。只有存在多个单词时,才会包含空格 这不是最漂亮的代码,但是为什么console.log打印出预期的结果,而我注释掉的返回命令不起作用Javascript 为什么console.log工作但不返回?,javascript,Javascript,我正在做这个卡塔: 编写一个函数,该函数接收一个或多个单词的字符串,并返回相同的字符串,但所有五个或更多字母的单词都反转,就像这个Kata的名称一样。传入的字符串将仅由字母和空格组成。只有存在多个单词时,才会包含空格 这不是最漂亮的代码,但是为什么console.log打印出预期的结果,而我注释掉的返回命令不起作用 function spinWords(sentence){ function reverse(s) { return s.split('').reverse().joi
function spinWords(sentence){
function reverse(s) {
return s.split('').reverse().join('');
}
var words = sentence.split(" ");
for (var i=0; i<words.length; i++){
var word = words[i].toString();
var backwards = reverse(word);
if (word.length>=5){
console.log(backwards);
//return backwards;
} else {
console.log(word);
//return word;
}
}
}
我想你的主要问题是,你试图返回一个for循环,这个循环不会给出你传递的所有单词,基本上你的if-else语句会在第一个循环中返回 假设您希望看到所注入的sentance变量的完整结果:
function spinWords(sentence){
function reverse(s) {
return s.split('').reverse().join('');
}
var words = sentence.split(" ");
var strings = [];
for (var i=0; i<words.length; i++) {
var word = words[i].toString();
var backwards = reverse(word);
if (word.length>=5){
strings.push(backwards);
console.log(backwards);
//return backwards;
} else {
strings.push(word);
console.log(word);
//return word;
}
}
return strings.join(' ');
}
使用:
var sentance=spinWords'foood是伟大的
console.logsentance的结果:
杜奥夫是!taerg定义不起作用。你期望它做什么,它实际上不做什么?我猜这与你如何使用返回值有关。您还没有向我们展示该代码。如果您取消对return语句的注释,那么您总是会在for循环的第一次迭代中返回。一旦返回,函数将终止,因此循环无法继续。谢谢!这有助于澄清我对re:console.log和return的一些困惑。如果有帮助,请单击上面的勾号接受答案: