首页 > 解决方案 > For 循环 if 语句在第一种情况下停止

问题描述

挑战:编写一个函数,接收一个或多个单词的字符串,并返回相同的字符串,但所有五个或更多字母单词都颠倒了(就像这个 Kata 的名字一样)。传入的字符串将仅包含字母和空格。仅当存在多个单词时才会包含空格。

示例: spinWords( "Hey fellow warriors" )=> 返回"Hey wollef sroirraw"

目前我有这个

function spinWords(str) {
  var splitArray = str.split(' ')
  for (var i = 0; i < splitArray.length; i++) {
    if (splitArray[i].length > 5) {
      var long = splitArray[i].split('').reverse('').join('')
      return long
      i++
    } else {
      var short = splitArray[i]
      return short
      i++
    }
  }
}

正如我在标题中所说,这工作正常,但只会将数组中的第一个元素返回为反转或不反转。谁能比我聪明,请解释为什么循环不循环?感谢您的时间。

标签: javascript

解决方案


Return 结束函数。另一种方法。

const spinWords = words =>
  words
    .split(" ")
    .map(word => (word.length >= 5 ? [...word].reverse().join("") : word))
    .join(" ");

console.log(spinWords("Hey fellow warriors"));


推荐阅读