将JS数组附加到变量并显示它

Appending JS array to a variable and displaying it?

本文关键字:变量 显示 JS 数组      更新时间:2023-09-26

我试图制作一个奇怪的在线程序,但遇到了麻烦。

这是我的代码:

        function name() {
        var titles = ["titles", "titles", "titles", "titles", "titles", "titles"];
        var randFor = Math.random();
        randFor = 7 * randFor;
        randFor = Math.floor(randFor);
        var finished = [];
        var arraySpot = 0;
        var newVal;
        var newValSpot = 0;
        newVal = finished[newValSpot];
        for (i = 0; i < randFor; i++) { 
            var randArray = Math.random();
            randArray = 7 * randArray;
            randArray = Math.floor(randArray);
            finished.push[arraySpot] = titles[randArray];
            arraySpot++;
            newValSpot++;
            newVal = " " + finished[newValSpot];
        }
        document.getElementById("gen").innerHTML =newVal;
    }

基本上,我想做的是获取一个单词数组,并将其转换为一个变量,然后将其显示在这个标签中:

<div id="gen"></div>

但每次它都会给我一个"未定义"的空间?

感谢您的帮助,很抱歉成为JS中的一个小人物。

更新我修改了代码,我不再得到"未定义",但现在我什么都没有?

        function name() {
        var titles = ["titles", "titles", "titles", "titles", "titles", "titles"];
        var randFor = Math.random();
        randFor = 7 * randFor;
        randFor = Math.floor(randFor);
        var newVal;
        newVal = title[0];
        for (i = 0; i < randFor; i++) { 
            var randArray = Math.random();
            randArray = 7 * randArray;
            randArray = Math.floor(randArray);
            newVal = " " + titles[randArray];
        }
        document.getElementById("gen").innerHTML = newVal;
    }

希望这是有用的

  • newVal = finished[newValSpot];此时,finished仍然是空数组,因此您得到了一个undefined
  • finished.push[arraySpot] = titles[randArray];请检查推送方法
  • newVal = " " + titles[randArray];这将为newVal分配一个新值,我想你想这样做。newVal = " " + titles[randArray];

更新

  • var titles = ["titles", "titles", "titles", "titles", "titles", "titles"]; titles的长度是6,而不是7,您应该在titles中再添加一个"标题"
  • newVal = " " + titles[randArray];同样的问题,我认为你想这样做。newVal = newVal + " " + titles[randArray];

function name() {
  // Add one more "titles" in this array.
  var titles = ["titles", "titles", "titles", "titles", "titles", "titles", "titles"];
  var randFor = Math.random();
  randFor = 7 * randFor;
  randFor = Math.floor(randFor);
  var newVal;
  newVal = titles[0];
  for (i = 0; i < randFor; i++) {
    var randArray = Math.random();
    randArray = 7 * randArray;
    randArray = Math.floor(randArray);
    newVal = newVal + " " + titles[randArray];
  }
  document.getElementById("gen").innerHTML = newVal;
}
name();
<div id="gen"></div>