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

时间:2016-05-23 02:15:33

标签: javascript

我正在研究这个卡塔: 编写一个函数,它接受一个或多个单词的字符串,并返回相同的字符串,但所有五个或更多字母单词都反转(就像这个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;
    }
  }
}

1 个答案:

答案 0 :(得分:1)

我猜你的主要问题是你试图在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 is great!')

console.log(sentance)的结果:

"dooof is !taerg"