【发布时间】:2020-08-07 15:53:19
【问题描述】:
我正在尝试随机化字符串中的每个字符大小写。到目前为止,我的代码如下:
var message = 'This message is for testing'
for (var i = 0; i < message.length; i++) {
var random_number = Math.round(Math.random() * 10 + 1);
if(random_number % 2 == 0) {
message.charAt(i).toUpperCase();
}
}
console.log(message)
问题是即使通过console.log给出字母和数字,它也显示数字会导致大写,但字母保持低位
【问题讨论】:
-
message.charAt(i).toUpperCase()返回字符,但您需要对其进行处理。无论如何,字符串是不可变的,所以…… -
console.log(message.replace(/\w/, c=>Math.random()<0.5 ? c : c.toUpperCase())); -
字符串是 javascript 中的原语,这意味着它们无法更改。当您在字符串上运行任何方法时,例如 charAt() 或 toUpperCase(),它会返回一个新字符串,而不会理会旧字符串。如果你创建了一个像
var myThing = "foo";这样的变量然后更改它myThing = "bar",你还没有更改字符串“foo”。它仍然是“foo”。您只更改了分配给变量myThing的内容。其他原语是布尔值、数字、未定义、null 和 NaN。
标签: javascript