Javascript - 如何循环遍历每个单词并将它们推入空数组

3
我想生成随机单词并将每个单词逐个推入数组中,但问题在于,我得到的是以第一个字母递增1开始的单词列表,如下所示:['a','ab','abc','abcd']等等。
这是我的代码:
var word = "";
var texts = [];
var letters = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
for (var i = 0; i < 10; i++){
    word += letters.charAt(Math.floor(Math.random() * letters.length))
    texts.push(
        {
            "id":i,
            "name":word,
            selected: false
        }
    )
}

我需要的是将一个完整的单词添加到列表中。

1
要这样做,您需要两个循环:一个从“0到numWords”,在其中还有一个从“0到numLetters”的循环。 - Mark
第一次我用了两个循环,但是我的浏览器卡住了!我想我做错了,但是谢谢@MarkMeyer的关注 :) - swordfish
俄语带有黑客电影的句柄,请求帮助生成随机单词...你的目的是什么? - vol7ron
@vol7ron,不是你想的那样,我只是在使用 FlaskVueJS 创建一个小应用程序 :) - swordfish
2个回答

3
var texts = [];
var letters = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
var wordLength = 5;
for (var i = 0; i < 10; i++){
    let word = "";
    for(var j = 0; j < wordLength; j++) {
      word += letters.charAt(Math.floor(Math.random() * letters.length));
    }
    texts.push(
        {
            "id": i,
            "name": word,
            selected: false
        }
    )
}

你需要使用另一个循环来生成单词。每次都需要使用新的单词循环。

我很高兴能够帮助你。 附注:上次(当你的“浏览器被冻结”)可能是无限循环。 - Gandalf_The_White

0
    var word = "";
var texts = [];
var letters = "abcdefghijklmn";
for (var i = 0; i < 10; i++){
    word = letters.slice(1,i)
    texts.push(word);
}
alert(texts);

哦,抱歉你需要的是随机的;这个怎么样?

var word = "";
var texts = [];
var letters = "abcdefghijklmn";
var l = letters.length;
var textsNum = 10;
for (var v = 0; v < textsNum; v++) {
  for (var i = 0; i < l; i++) {
    word += letters[Math.floor(Math.random() * l)];
  }
  texts.push(word);
  word = '';
}

console.dir(texts);

你看,结果和我的代码一样,但还是谢谢你的关注 :) - swordfish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接