gpt4 book ai didi

javascript - 当字符串包含数组中的单词时向字符串添加空格

转载 作者:行者123 更新时间:2023-11-30 19:45:25 25 4
gpt4 key购买 nike

我有一个函数,我在其中迭代给定的字符串,交替每个字符的大写并将其连接到变量 alt

为了正确循环,我从原始字符串中删除了空格。但我需要在函数末尾添加它们。

function alternatingCaps(str) { // 'hello world'
let words = str.toLowerCase().split(' '); // ['hello','world']
str = words.join(''); // 'helloworld'
let alt = '';
for(let i = 0; i < str.length; i++) {
if(i % 2 === 0)
alt += str[i].toUpperCase();
else
alt += str[i].toLowerCase();
}
return alt;
}

console.log(alternatingCaps('hello world'));
/* Output: "HeLlOwOrLd"
Wanted output: "HeLlO wOrLd" */

一旦 alt 包含一个字符串作为值包含在 words 数组中,我想在单词的末尾添加一个空格。

这是我的尝试:

 words.forEach(function(word) {
if(alt.toLowerCase().includes(word) && word[word.length - 1] === alt[i].toLowerCase())
alt += ' ';
});

它检查 words 数组中的任何单词是否出现在 alt 字符串中,以及字符串的当前字符迭代是否对应于单词。如果是这样,它会在字符串中添加一个空格。

但这并没有按预期工作。

> Output: "HeLlO wOr Ld"
> Wanted output: "HeLlO wOrLd"

我还认为这会导致重复字母出现问题。我怎样才能实现我的目标?

最佳答案

你不应该加入你的话。将它们作为单独的元素保存在 words 数组中,然后您可以循环遍历该数组,将您的函数应用于每个元素。

function alternatingCaps(str) { // 'hello world'
let words = str.toLowerCase().split(' '); // ['hello','world']

const alts = words.map(word => capitalizeEvens(word));
return alts.join(' ');

function capitalizeEvens(word) {
let alt = '';
for(let i = 0; i < word.length; i++) {
if(i % 2 === 0)
alt += word[i].toUpperCase();
else
alt += word[i].toLowerCase();
}
return alt;
}

console.log(alternatingCaps('hello world'));

关于javascript - 当字符串包含数组中的单词时向字符串添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54990858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com