挑战:编写一个函数,接收一个或多个单词组成的字符串,并返回相同的字符串,但将所有五个或更多的字母单词颠倒过来(就像这个形的名字一样)。传入的字符串将只包含字母和空格。只有当出现多个单词时,空格才会包含在内。
例如: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++
}
}
}
正如我在标题中所说的,这是正常工作的,但只会返回数组中的第一个元素作为反转或不反转。谁比我聪明,请解释为什么循环不循环?谢谢你的时间。
5条答案
按热度按时间ymdaylpp1#
Return结束函数。另一种方法。
oug3syen2#
你就快到了。
1.使用for循环时,您不希望再执行一次i++..
1.你说它应该是5或更多..所以它应该是〉=5
修改后的函数可以如下所示:
dtcbnfnu3#
要使此代码正常工作,必须更改三项内容。
第一个
return
语句将完成整个函数执行。因此,当不再执行代码时,应将其放在函数体的末尾。Second您可以切换正在迭代的值,然后使用第一行的反转操作返回相同的数组(
.join(' ')
)。第三个如果在参数中定义了索引计数器,
for
循环已经在每次迭代结束时递增了索引计数器。循环体中不需要i++
。else
语句 *pobjuy324#
vvppvyoh5#
这是我的回答后,你的提示: