Javascript 使用循环创建单词加扰器

Javascript 使用循环创建单词加扰器,javascript,arrays,loops,textbox,buttonclick,Javascript,Arrays,Loops,Textbox,Buttonclick,尝试创建一个单词扰码器,它从文本框中提取文本,对字母进行扰码,并在不同的文本框中重复它们。代码必须使用循环在字母数组中分布文本。一旦我到达Math.floor对象,我就对如何继续感到困惑 相关代码: var word=document.getElementById(“输入”).value; var wordLength=word.length; var-scrambled=“”; for(var i=0;i

尝试创建一个单词扰码器,它从文本框中提取文本,对字母进行扰码,并在不同的文本框中重复它们。代码必须使用循环在字母数组中分布文本。一旦我到达Math.floor对象,我就对如何继续感到困惑

相关代码:


var word=document.getElementById(“输入”).value;
var wordLength=word.length;
var-scrambled=“”;
for(var i=0;i

将单词随机排列的简单方法如下:

var word = "hello";
var wordLength = word.length;
var scrambled = "";

for (var i = 0; i < wordLength; i++) {
    var charIndex = Math.floor(Math.random() * word.length);
    scrambled += word.charAt(charIndex);
    word = word.substr(0, charIndex) + word.substr(charIndex + 1);
}
var word=“你好”;
var wordLength=word.length;
var-scrambled=“”;
for(var i=0;i
这样做的目的是在每个循环中从单词中删除一个字母,并将其附加到一个字符串中,该字符串将成为随机单词
Math.random
生成一个介于0和1之间的随机数,
Math.floor
将结果向下舍入。因为单词的开头有六个字母,所以会产生一个介于0和5之间的数字(这是您想要的,因为没有第六个索引)


剩下要做的就是将结果弹出一个文本框。

这个循环测量缩小的原稿,同时随机删除乱码原稿的字母-

function scrambleWord(s){
    var word= s.value.split(''), scram= '';
    while(word.length){
        scram+= word.splice(Math.floor(Math.random()*word.length), 1)[0];
    }
    return scram;
}

警报(扰码字({value:'spinach'}))

如果要做的只是将字符数组随机化,请参见。此外,避免使用诸如
random
之类的变量名,因为这些变量名可能会使人困惑,甚至是保留字。这似乎是一个家庭作业问题。是这样吗?是的。这是给我的高中计算机科学课的。这个解决方案只有部分有效。如果我输入一个单词“happy”,代码只返回两个字母,而不是五个。(pp、hp、ap等)我将“hello”替换为我的文本框值,最后我将我的输出文本框值设置为等于word。生成的单词与我输入的单词长度不同。我会更新我的代码,这样你就可以看到我做了什么。看看你的代码。这是家庭作业,所以你应该试着理解你在做什么,而不是盲目地抄袭;)
scrambled
保存输出,而不是
word
。你的代码和我的不一样(括号中的第二个参数是
。是的,案例很重要。)我一直在努力理解我在做什么——相信我!)我已经尝试这么久了,我想我的大脑终于决定了“我放弃”。谢谢你的帮助。不用担心。这回答了你的问题还是你还需要更多的帮助?