将数组(作为函数参数传递)元素复制到JavaScript中的另一个本地数组中

问题描述 投票:0回答:1

我有以下代码:

(function (window) {
  function javJavScript() {
    var _javJavObject = {};
    var elemImg = [];

    _javJavObject.myCustomLog = function (thingToLog) {
      console.log("My-Custom-Log > Type of variable : " + typeof (thingToLog));
      console.log("My-Custom-Log > Is number : " + !isNaN(thingToLog));
      console.log("My-Custom-Log > Length : " + (thingToLog).length);

      return console.log(thingToLog);
    };

    _javJavObject.imageArrayRandomizer = function (elementID, elemImg) {
      var imgArray = [];
      var i = imgArray.length;
      var cloneElemImg = elemImg.slice(0);
      for (i = 0; i < imgArray.length; i++) {
        imgArray[i] = elemImg[i];
      }
      document.write(imgArray[0]);
      document.write("<br>" + elemImg[0]);
      var elemBG = document.getElementById(elementID);
      if (i) {
        elemBG.style.background = imgArray[Math.floor(Math.random() * i)];
      }
    };



    return _javJavObject;
  }


  if (typeof (window.javJavScript) === 'undefined') { window.javJavScript = javJavScript(); }
})(window);



javJavScript.imageArrayRandomizer('my-body', ["blue", "red", "green", "yellow"]);

我称之为imageArrayRandomizer函数并且看到imgArray[0]undefinedelemImg[0]是“蓝色”(应该是)。我在这里读了关于我的问题的其他问题 - 他们建议使用apply()或splice()方法,但我可能没有正确使用它们,因为我无法得到我想要的结果。我究竟做错了什么?

javascript arrays
1个回答
0
投票
for (i = 0; i < imgArray.length; i++)

那么imgArray是空的所以for循环不会运行。可以这样做:

for (i = 0; i < elemImg.length; i++)
© www.soinside.com 2019 - 2024. All rights reserved.