javascript - 为什么 for 循环不起作用?

标签 javascript string

我正在处理一个问题让我:

将每个单词的第一个字母移到它的末尾,然后在单词的末尾添加“ay”。

pigIt('Pig latin is cool'); //igPay atinlay siay oolcay

这是我现在的代码,它只返回第一个单词,尽管它使用了 for 循环。这可能是一个愚蠢的错误,但我只是有点被困在这里,非常感谢你帮助检查代码。(可能只是我已经看它太久了,一双新的眼睛肯定会发现这个错误)

function pigIt(str) {

str = str.split(" ")
 for(var i = 0;i<str.length;i++)
 return str[i].slice(1)+str[i][0]+"ay"
}

console.log(pigIt('Pig latin is cool'))

而且我认为我的解决方案可以使用嵌套 map 函数来简化,但我的尝试没有成功;你们中有人能想出更好的解决方案来解决所提出的问题吗?

谢谢大家。

更新:

所以这是我一直在寻找的工作 map 代码,比我原来的解决方案好得多:

 function pigIt(str){
 return str.split(' ').map(function(el){
  return el.slice(1) + el.slice(0,1) + 'ay';
  }).join(' ');
 }

就好像其他人偶然发现了这个问题,想用一个简化的代码来解决这个问题。

最佳答案

您在 for 循环中使用了 return,因此它会执行第一次迭代,然后...返回。

您需要将内容插入一个数组,然后将数组连接回一个字符串。

关于javascript - 为什么 for 循环不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25275364/

相关文章:

java - 自动邮件内容中的 HTML 格式

java String.split(regex) 设计

javascript - momentjs 并转换为 unix 给出了错误的日期

javascript - 具有多个 json 文件的 d3.js 队列

javascript - 循环 Angular API 调用

java - 打印格式化字符串

string - 我应该如何处理 D 中的 C 字符串?

javascript 创建使用元素

javascript - 从 JSON 动态创建表并在生成表后对列执行操作

asp.net-mvc - 使用 Razor View 引擎 - 如何将十进制值格式化为逗号和两位小数?