javascript - 使用 javascript 进行大写,每隔一个新行将其拆分,并将字符串添加到每个新行的开头

标签 javascript string character line capitalize

使用 JavaScript 来 (1) 将用户输入字符串中的所有字符大写,(2) 每 45 个字符用一个新行将其分隔,以及 (3) 添加特定字符串(“///////”例如)到每个新行的开头。

我想要一个简单的应用程序,我可以在其中复制和粘贴文本字符串,并有一个函数执行上述操作。

例如:
复制并粘贴“我是 JavaScript 新手,所以即使是这个简单的代码也很难编写”并获得以下内容:

"
//////I AM NEW TO JAVASCRIPT, SO EVEN THIS SIMPLE C
//////ODE IS VERY DIFFICULT TO WRITE
"

我希望将来能够做到这样,这样就不会在中间切断这样的单词,并且可以使用空格来找到新行应该在的位置,但这似乎有点现在很多。

我所拥有的只是大写功能的工作:

var txt = prompt("Enter string of text");
var cap = txt.toUpperCase();
alert(cap);

但我希望它同时运行所有三个函数,并生成 alert() 最终产品。

最佳答案

在“函数式编程风格”中,您可以这样做:

var txt = prompt("Enter string of text");
var cap = txt.toUpperCase().split('').reduce(function(agg, item, i) {
  if(i % 45 === 0) {
    if(i > 0) {
      agg.push('\r\n');
    }
    agg.push('//////');
  }
  agg.push(item);
  return agg;
  }, []).join('');
alert(cap);

本质上,这里发生的是字符串是:

  1. 转换为大写。然后...
  2. 分割成单个字符的数组。然后...
  3. 数组被“缩减”1 为一个新数组,其中包含交织的换行符和“分隔符”字符串 (//////)。然后...
  4. 连接新数组以形成新字符串。

1 缩减数组是一种按顺序迭代数组项并增量生成单个“缩减”结果的操作。通常,这用于对多个值求和等场景。在此代码中,这不是该函数的“逻辑上正确”用法,因为它不会减少任何内容,但它确实启用了函数式样式解决方案。

关于javascript - 使用 javascript 进行大写,每隔一个新行将其拆分,并将字符串添加到每个新行的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34202658/

相关文章:

javascript - 逆向工程调用了哪个 javascript/jquery 函数

javascript - For 循环中的 StringBuilder

python - 仅打印字符串中的元音字母

r - 在两个字母之间创建一个序列

javascript - 这两个字符串的区别(JavaScript)

javascript - Firefox 引导插件中的 CustomEvent 错误

javascript - 如何检查摘要周期是否稳定(又名 "Has angular finished compilation?")

c++ - 字符串是 C++ 中的 char 吗?

Javascript:将插入符移动到最后一个字符

Python Web 服务器 UTF8 编码