使用 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 为一个新数组,其中包含交织的换行符和“分隔符”字符串 (
//////
)。然后... - 连接新数组以形成新字符串。
1 缩减数组是一种按顺序迭代数组项并增量生成单个“缩减”结果的操作。通常,这用于对多个值求和等场景。在此代码中,这不是该函数的“逻辑上正确”用法,因为它不会减少任何内容,但它确实启用了函数式样式解决方案。
关于javascript - 使用 javascript 进行大写,每隔一个新行将其拆分,并将字符串添加到每个新行的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34202658/