Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么console.log工作但不返回?_Javascript - Fatal编程技术网

Javascript 为什么console.log工作但不返回?

Javascript 为什么console.log工作但不返回?,javascript,Javascript,我正在做这个卡塔: 编写一个函数,该函数接收一个或多个单词的字符串,并返回相同的字符串,但所有五个或更多字母的单词都反转,就像这个Kata的名称一样。传入的字符串将仅由字母和空格组成。只有存在多个单词时,才会包含空格 这不是最漂亮的代码,但是为什么console.log打印出预期的结果,而我注释掉的返回命令不起作用 function spinWords(sentence){ function reverse(s) { return s.split('').reverse().joi

我正在做这个卡塔: 编写一个函数,该函数接收一个或多个单词的字符串,并返回相同的字符串,但所有五个或更多字母的单词都反转,就像这个Kata的名称一样。传入的字符串将仅由字母和空格组成。只有存在多个单词时,才会包含空格

这不是最漂亮的代码,但是为什么console.log打印出预期的结果,而我注释掉的返回命令不起作用

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的一些困惑。如果有帮助,请单击上面的勾号接受答案: