JavaScript中数组的每个元素中的大写偶数字符和小写奇数字符

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

我需要在数组的每个元素中使用大写偶数字符和小写奇数字符,以便输入'This is a test'时,输出将为'This a test'(不包括空格,以便每个单词都以大写字母开头)

以下是我到目前为止的想法:

函数类型(字符串){
变量reg=/\b(?![\s.])/
var res=string.split(reg)
var newArr=[]
for(设k=0;klog(towerdcase(“这是一个测试”)
toUpperCase
不会在适当的位置修改字符串(JavaScript字符串是不可变的)。您需要将结果分配回一个变量

函数类型(字符串){
变量reg=/\b(?![\s.])/
var res=string.split(reg)
var newArr=[]
for(设k=0;kconsole.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()再次解决它。