JavaScript中数组的每个元素中的大写偶数字符和小写奇数字符
我需要在数组的每个元素中使用大写偶数字符和小写奇数字符,以便输入'This is a test'时,输出将为'This a test'(不包括空格,以便每个单词都以大写字母开头) 以下是我到目前为止的想法:JavaScript中数组的每个元素中的大写偶数字符和小写奇数字符,javascript,arrays,loops,sorting,Javascript,Arrays,Loops,Sorting,我需要在数组的每个元素中使用大写偶数字符和小写奇数字符,以便输入'This is a test'时,输出将为'This a test'(不包括空格,以便每个单词都以大写字母开头) 以下是我到目前为止的想法: 函数类型(字符串){ 变量reg=/\b(?![\s.])/ var res=string.split(reg) var newArr=[] for(设k=0;ka.split(“”).map((e,i)=>i%2==0?e.toUpperCase():e.toLowerCase()).j
函数类型(字符串){
变量reg=/\b(?![\s.])/
var res=string.split(reg)
var newArr=[]
for(设k=0;k log(towerdcase(“这是一个测试”)
toUpperCase
不会在适当的位置修改字符串(JavaScript字符串是不可变的)。您需要将结果分配回一个变量
函数类型(字符串){
变量reg=/\b(?![\s.])/
var res=string.split(reg)
var newArr=[]
for(设k=0;k console.log(towerdcase(“这是一个测试”)
您可以使用外部变量String.replace()
来决定文本是大写还是小写:
函数类型(字符串){
让大写=true;
返回字符串
.替换(//g,c=>{
const current=大写;
大写=c==''?真:!大写;
返回当前值?c.toUpperCase():c.toLowerCase();
});
}
console.log(TowerdCase(“这是一个测试”)
Golfier版本:
input
.split(/\s+/)
.map(wrd => wrd
.split('')
.map((c, i) => i % 2 ? c.toLowerCase() : c.toUpperCase())
.join(''))
.join(' ');
如果您不关心行长度,那么它是一行。我们可以使用基本映射来实现这一点,然后使用模块选择大写/小写奇数/偶数值
功能案例(str){
返回str.split(“”).map(word=>
word.split(“”).map((itm,idx)=>idx%2?itm.toLowerCase():itm.toUpperCase()).join(“”)
).加入(“”)
}
log(TowerdCase(“这是一个测试”)
您可以试试这个
let str=“这是一个测试”;
设op=str.split(“”).map((a,i)=>a.split(“”).map((e,i)=>i%2==0?e.toUpperCase():e.toLowerCase()).join(“”)).join(“”);
console.log(op)
您可以使用Array.map
和String.split
,String.join
来获得该结果。
映射单词,然后遍历每个字符,如果是大写,则将其小写
const up=string=>
string.split(“”)
.map(word=>word.split(“”)
.map((chr,i)=>chr[i%2?'toLowerCase':'toUpperCase'])。连接(“”)
).加入(“”)
console.log(up(“这是一个测试”)
您可以使用一个简单的映射函数来实现这一点:
"This is a test"
.split("")
.map((s, i) => (i % 2 == 0 ? s.toUpperCase() : s))
.join("");
请参见您的代码对每个单词中的奇数/偶数字母进行操作,而不是对字符串进行操作。这就是你真正想要的吗?这不会产生你想要的结果。谢谢你,杰瑞德!谢谢你,巴尔马!现在我明白我错过了什么,非常感谢!谢谢你,Akrion!我一定会尝试使用.map()再次解决它。