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

标签 javascript

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

这是我的代码:

        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];请查看this对于推送方法。
  • 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>

关于javascript - 将 JS 数组附加到变量并显示它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37265011/

相关文章:

javascript - 从对象内部的对象中删除键

javascript - 为什么一个对象的属性值不能作为另一个对象的属性名?

php - 如何将 javascript 变量传递给 php 并重新加载框架

javascript - Node 的 spawn() 在从启动时计划的永久脚本中调用时静默失败

javascript - 如何访问 XMLHttpRequest 中的类方法?

javascript - 在 Javascript 的 if 语句中更改变量的值

javascript - 如何使用 TypeScript 和 DefinelyTyped 引用 jQuery 选择器?

javascript - 字符串替换为参数值 Angular

javascript - AngularJS - 将拖放与流程图相结合

javascript - 如何正确更新对象?