Javascript 有没有办法缩短我的代码?
为了练习,我用javascript编写了这个小程序,它运行得非常好。我只是想遵循我学到的不要重复自己的规则,我想知道是否有任何方法可以简化我目前拥有的代码(特别是检查Rattata拼写是否正确的6 if语句)Javascript 有没有办法缩短我的代码?,javascript,short,Javascript,Short,为了练习,我用javascript编写了这个小程序,它运行得非常好。我只是想遵循我学到的不要重复自己的规则,我想知道是否有任何方法可以简化我目前拥有的代码(特别是检查Rattata拼写是否正确的6 if语句) var拼写错误=true 函数spellratata(){ 变量字母=[“R”]; 对于(变量i=0;i=.5会更好 function spellRattata() { for (var a = "r", b = 0; b < 6; b++) a += Math.random
var拼写错误=true
函数spellratata(){
变量字母=[“R”];
对于(变量i=0;i<6;i++){
var a=Math.round(Math.random());
如果(a){
a=“a”;
}否则{
a=“t”;
};
信。推送(a);
};
如果(字母[1]=“a”){
如果(字母[2]=“t”){
如果(字母[3]=“t”){
如果(字母[4]=“a”){
如果(字母[5]=“t”){
如果(字母[6]=“a”){
对于(变量i=0;i<7;i++){
控制台日志(字母[i]);
};
};
};
};
};
};
};
};
while(拼写错误){
Spellratata();
}
提前感谢所有帮助我的人。试试这个:
var letter = ['R','a','t','t','a','t','a'];
letter = letter.join('');
if(letter==='Rattata')
console.log('Correct');
else
console.log('Wrong');
函数spellratata(){
var word=“r”;
对于(变量i=0;i<6;i++)
word+=Math.random()>0.5?“a”:“t”;
如果(单词==“Ratta”)
返回true;
console.log(word);
返回false;
}
而(!spellratata());
如果你真的想缩短它:
function spellRattata() {
for (var a = "r", b = 0; b < 6; b++) a += Math.random() > .5 ? "a" : "t";
return "rattata" == a || (console.log(a), !1)
}
for (; !spellRattata(););
函数spellratata(){
对于(var a=“r”,b=0;b<6;b++)a++=Math.random()>.5?“a”:“t”;
返回“ratata”==a | |(console.log(a),!1)
}
对于(;!spellratata(););
您不需要比较字符串和缓冲字母
- 您将在每次通话中使用单词“attata”。所以你可能想利用它
- 当
等于1时,生成“a”,否则生成“t”。因此,实际上为每个Math.random()>=0.5生成“a”。你可能也想利用这一点Math.round(Math.random())
- 因为我们有两个字母来确定它是否匹配,所以我们可以使用布尔值而不是字母。对“a”为TRUE,对“t”为FALSE
- 当您需要操作阵列时,使用内置函数将提高性能
var ATTATA_MAP = [true, false, false, true, false, true];
var spellRattata = () => ATTATA_MAP.every(v => v === (Math.random() >= 0.5));
while(!spellRattata()) {
console.log('wrong spelled');
}
如果(字母==='Ratta')将do@barudo这将失败,因为
字母
是一个数组。现在,字母
可以更改为字符串-现在不是。所以你需要将其更改为字符串…这个问题需要发布在not here上,因为这更像是关于重构和注释的意见Math.random()>=.5
会更好
function spellRattata() {
for (var a = "r", b = 0; b < 6; b++) a += Math.random() > .5 ? "a" : "t";
return "rattata" == a || (console.log(a), !1)
}
for (; !spellRattata(););
var ATTATA_MAP = [true, false, false, true, false, true];
var spellRattata = () => ATTATA_MAP.every(v => v === (Math.random() >= 0.5));
while(!spellRattata()) {
console.log('wrong spelled');
}