gpt4 book ai didi

javascript - 如何在单独的行中打印每个单词。除第一个单词外,每个单词都大写

转载 作者:搜寻专家 更新时间:2023-11-01 05:08:48 25 4
gpt4 key购买 nike

我正在尝试创建一个将每个单词打印在新行上的函数。给定的参数是一个字符串,其中的单词不是由空格分隔而是大写,除了第一个单词,即“helloMyNameIsMark”。我有一些有用的东西,但想知道是否有更好的方法在 javaScript 中执行此操作。

separateWords = (string) => {

const letters = string.split('');
let word = "";
const words = letters.reduce((acc, letter, idx) => {
if (letter === letter.toUpperCase()) {
acc.push(word);
word = "";
word = word.concat(letter);
} else if (idx === letters.length - 1) {
word = word.concat(letter);
acc.push(word);
} else {
word = word.concat(letter)
}
return acc
}, []);
words.forEach(word => {
console.log(word)
})
}

最佳答案

您可以使用正则表达式 [A-Z]replace每个带有 \n 前缀的大写字母

const separateWords = str => str.replace(/[A-Z]/g, m => '\n' + m)

console.log(separateWords('helloMyNameIsMark'))

或者您可以使用前瞻性 (?=[A-Z]) 在每个大写字母处拆分 以获得单词数组。然后遍历数组以记录每个单词:

const separateWords = str => str.split(/(?=[A-Z])/g)
separateWords('helloMyNameIsMark').forEach(w => console.log(w))

关于javascript - 如何在单独的行中打印每个单词。除第一个单词外,每个单词都大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56840971/

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