繁体   English   中英

如何在javascript中将元素从一个数组复制到另一个数组?

[英]how to copy elements from one array to another array in javascript?

我有一个函数,它从arrayVariable随机选择值并将它们分配给段落元素p [i]。

我想将随机选择的值复制到另一个数组b [i]。

我该怎么做?

 function rvalue() { var arrayVariable = ['1', '2', '3', '4', '5'] arrayLength = arrayVariable.length; ptags = document.getElementsByName("values"); for (i = 0; i < ptags.length; i++) { ptags[i].innerHTML = arrayVariable[Math.floor(Math.random() * arrayLength)]; } } 
 p { font-size: 2xpx; color: #000000; } 
 <body onload="rvalue()"> <p name="values"></p> </div> <p name="values"></p> </div> <p name="values"></p> </div> </div> 

要将文本插入HTML元素,最好使用textContent而不是innerHTML

创建一个数组以在每次迭代中推送textContent

 function rvalue() { var array = []; var arrayVariable = ['1', '2', '3', '4', '5'] arrayLength = arrayVariable.length; ptags = document.getElementsByName("values"); for (i = 0; i < ptags.length; i++) { ptags[i].textContent = arrayVariable[Math.floor(Math.random() * arrayLength)]; array.push(ptags[i].textContent); } console.log(array); } 
 p { font-size: 20px; color: #000000; } 
 <body onload="rvalue()"> <p name="values"></p> <p name="values"></p> <p name="values"></p> </body> 

请注意:您的HTML没有打开div元素, font-size具有无效值(2xpx)。

它将通过indextempArray存储值,您可以使用Array.push进行正常插入以替换tempArray[index] = arrayVariable[index];

tempArray.push(arrayVariable[index]);

如果您使用.push方法可能会在array获得重复值,那么只需使用此代码删除重复的条目

tempArray= tempArray.filter(function(val, i){
  return tempArray.indexOf(val)== i; 
});

 function rvalue() { var arrayVariable = ['1', '2', '3', '4', '5'] arrayLength = arrayVariable.length; var tempArray = []; ptags = document.getElementsByName("values"); for (i = 0; i < ptags.length; i++) { var index = Math.floor(Math.random() * arrayLength); ptags[i].innerHTML = arrayVariable[index]; tempArray[index] = arrayVariable[index]; } console.log(tempArray); } 
 p { font-size: 2xpx; color: #000000; } 
 <body onload="rvalue()"> <p name="values"></p> </div> <p name="values"></p> </div> <p name="values"></p> </div> </div> 

像这样

function randomizeParagraphs() {
    var possibleValues = ['1', '2', '3', '4', '5'],
        createdValues = [], // Empty array to store created values.
        pTags = document.getElementsByName("values");

    for (var i = 0; i < pTags.length; i++) {
        var item = possibleValues[Math.floor(Math.random() * possibleValues.length)];
        ptags[i].innerHTML = item;
        createdValues.push(item);
    }

    // Log the created values.
    console.log(createdValues);
}

嘿,你可以分配这样的获取值,

function rvalue() {
  var arrayVariable = ['1', '2', '3', '4', '5']
  arrayLength = arrayVariable.length;

  arrRandomGeneratedValue = [];
  ptags = document.getElementsByName("values");
  for (i = 0; i < 5; i++) {
    randomGeneratedValue = arrayVariable[Math.floor(Math.random() * arrayLength)];
    ptags[i].innerHTML = randomGeneratedValue;
    arrRandomGeneratedValue.push(randomGeneratedValue);

  }
 return arrRandomGeneratedValue;
}

rvalue();

好吧我不知道如果我理解但是如果你想保存随机值,请在你想用作存储的新数组变量中使用push方法。

  function rvalue() {
  var b = [];
 var arrayVariable = ['1', '2', '3', '4', '5']
 arrayLength = arrayVariable.length;

   ptags = document.getElementsByName("values");
   for (i = 0; i < ptags.length; i++) {
   ptags[i].innerHTML = arrayVariable[Math.floor(Math.random() * arrayLength)];
   b.push(ptags[i].innerHTML);  
 }
 }

我希望这就是你要找的:P问候!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM